doc fix and command prepare_spacevim_typescript

This commit is contained in:
hophacker 2021-07-29 00:24:28 +08:00
parent 66d3dff6f3
commit 49eacf776c
2 changed files with 127 additions and 129 deletions

View File

@ -20,7 +20,7 @@ bash -c "`curl -fsSL https://raw.githubusercontent.com/ruilisi/dotfiles/master/i
``` ```
Or Or
```sh ```sh
bash -c "`curl -fsSL https://git.ruilisi.com/ruilisi/dotfiles/raw/branch/master/install.sh`" bash -c "`curl -fsSL https://xiemala.com/ruilisi/dotfiles/raw/branch/master/install.sh`"
``` ```
## Upgrade ## Upgrade
@ -211,7 +211,7 @@ SPC e L | List checkers
* Open vim run `:CheckHealth` check the current vim status, and fix any errors. * Open vim run `:CheckHealth` check the current vim status, and fix any errors.
* Install pip for `python3` if not: `curl https://bootstrap.pypa.io/get-pip.py | python3` * Install pip for `python3` if not: `curl https://bootstrap.pypa.io/get-pip.py | python3`
* `pip install neovim` * `pip install neovim`
* `npm install -g neovim` * `npm install -g neovim typescript`
* Run `:UpdateRemotePlugins` in vim and reopen vim * Run `:UpdateRemotePlugins` in vim and reopen vim
* If plugin `nvim-typescript` is not installed successfully(`vim` -> `:SPUpdate`), try following steps one by one until succeeded: * If plugin `nvim-typescript` is not installed successfully(`vim` -> `:SPUpdate`), try following steps one by one until succeeded:
1. Add `call dein#reinstall(['nvim-typescript'])` to `~/.local/share/nvim/rplugin.vim`, reopen vim and wait for the `nvim-typescript` plugin to install 1. Add `call dein#reinstall(['nvim-typescript'])` to `~/.local/share/nvim/rplugin.vim`, reopen vim and wait for the `nvim-typescript` plugin to install
@ -258,15 +258,7 @@ The interface elements of SpaceVim start with [SPC] t or [SPC] T. You can view t
#### Switch Tab: #### Switch Tab:
When multiple files are opened, the files will be listed in the tab bar in the form of Tabs, and you can switch to the Tab with the corresponding serial number via `\[1-9]`. When multiple files are opened, the files will be listed in the tab bar in the form of Tabs, and you can switch to the Tab with the corresponding serial number via `\[1-9]`.
- `\1` - Open tag 1 - `\[1-9]` - Open tag 1-9
- `\2` - Open tag 2
- `\3` - Open tag 3
- `\4` - Open tag 4
- `\5` - Open tag 5
- `\6` - Open tag 6
- `\7` - Open tag 7
- `\8` - Open tag 8
- `\9` - Open tag 9
#### History #### History
Shortcut | Function Shortcut | Function
@ -279,8 +271,6 @@ Shortcut | Function
:-----------|:-------- :-----------|:--------
SPC h I | Show Debug Info SPC h I | Show Debug Info
## iTerm ## iTerm
### iTerm Solarized Colors ### iTerm Solarized Colors

224
Rakefile
View File

@ -1,55 +1,55 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'rake' require "rake"
require 'fileutils' require "fileutils"
require 'English' require "English"
def macos? def macos?
RUBY_PLATFORM.downcase.include?('darwin') RUBY_PLATFORM.downcase.include?("darwin")
end end
def linux? def linux?
RUBY_PLATFORM.downcase.include?('linux') RUBY_PLATFORM.downcase.include?("linux")
end end
# this has all the runcoms from this directory. # this has all the runcoms from this directory.
task :link_files do task :link_files do
if want_to_install?('git configs (color, aliases)') if want_to_install?("git configs (color, aliases)")
install_files(Dir.glob('git/*')) install_files(Dir.glob("git/*"))
end end
if want_to_install?('irb/pry configs (more colorful)') if want_to_install?("irb/pry configs (more colorful)")
install_files(Dir.glob('irb/*')) install_files(Dir.glob("irb/*"))
end end
if want_to_install?('rubygems config (faster/no docs)') if want_to_install?("rubygems config (faster/no docs)")
install_files(Dir.glob('ruby/*')) install_files(Dir.glob("ruby/*"))
end end
if want_to_install?('ctags config (better js/ruby support)') if want_to_install?("ctags config (better js/ruby support)")
install_files(Dir.glob('ctags/*')) install_files(Dir.glob("ctags/*"))
end end
install_files(Dir.glob('tmux/*')) if want_to_install?('tmux config') install_files(Dir.glob("tmux/*")) if want_to_install?("tmux config")
if want_to_install?('vimification of command line tools') if want_to_install?("vimification of command line tools")
install_files(Dir.glob('vimify/*')) install_files(Dir.glob("vimify/*"))
end end
run %( run %(
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
) )
end end
desc 'Hook our dotfiles into system-standard positions.' desc "Hook our dotfiles into system-standard positions."
task install: %i[submodule_init submodules] do task install: %i[submodule_init submodules] do
puts puts
puts '======================================================' puts "======================================================"
puts 'Welcome to YADR Installation.' puts "Welcome to YADR Installation."
puts '======================================================' puts "======================================================"
puts puts
install_homebrew if macos? install_homebrew if macos?
install_rvm_binstubs install_rvm_binstubs
Rake::Task['link_files'].execute Rake::Task["link_files"].execute
Rake::Task['install_tools'].execute Rake::Task["install_tools"].execute
Rake::Task['install_prezto'].execute Rake::Task["install_prezto"].execute
Rake::Task['install_spacevim'].execute Rake::Task["install_spacevim"].execute
install_fonts install_fonts
@ -57,29 +57,29 @@ task install: %i[submodule_init submodules] do
run_bundle_config run_bundle_config
success_msg('installed') success_msg("installed")
end end
task :install_prezto do task :install_prezto do
install_prezto if want_to_install?('zsh enhancements & prezto') install_prezto if want_to_install?("zsh enhancements & prezto")
end end
desc 'install spacevim and related config files' desc "install spacevim and related config files"
task :install_spacevim do task :install_spacevim do
run 'curl -sLf https://spacevim.org/install.sh | sed "s;github.com/SpaceVim;git.ruilisi.com/ruilisi;" | bash' run 'curl -sLf https://spacevim.org/install.sh | sed "s;github.com/SpaceVim;xiemala.com/ruilisi;" | bash'
install_files(Dir.glob('SpaceVim*')) install_files(Dir.glob("SpaceVim*"))
end end
desc 'Update spacevim' desc "Update spacevim"
task :update_spacevim do task :update_spacevim do
run %( run %(
cd ~/.SpaceVim cd ~/.SpaceVim
git remote set-url origin https://git.ruilisi.com/ruilisi/SpaceVim.git git remote set-url origin https://xiemala.com/ruilisi/SpaceVim.git
git pull --rebase git pull --rebase
) )
end end
desc 'Install tools which are necessary for developers' desc "Install tools which are necessary for developers"
task :install_tools do task :install_tools do
if macos? if macos?
run %( run %(
@ -92,16 +92,23 @@ task :install_tools do
end end
end end
desc 'Updates the installation' desc "Prepare necessary components for spacevim/typescript"
task :prepare_spacevim_typescript do
run %(
pip install neovim
npm install -g neovim typescript
)
end
task :update do task :update do
Rake::Task['vundle_migration'].execute if needs_migration_to_vundle? Rake::Task["vundle_migration"].execute if needs_migration_to_vundle?
Rake::Task['install'].execute Rake::Task["install"].execute
# TODO: for now, we do the same as install. But it would be nice # TODO: for now, we do the same as install. But it would be nice
# not to clobber zsh files # not to clobber zsh files
end end
task :sync do task :sync do
vundle_path = File.join('vim', 'bundle', 'vundle') vundle_path = File.join("vim", "bundle", "vundle")
unless File.exist?(vundle_path) unless File.exist?(vundle_path)
run %( run %(
cd $HOME/.yadr cd $HOME/.yadr
@ -111,15 +118,15 @@ task :sync do
end end
task :submodule_init do task :submodule_init do
run %( git submodule update --init --recursive ) unless ENV['SKIP_SUBMODULES'] run %( git submodule update --init --recursive ) unless ENV["SKIP_SUBMODULES"]
end end
desc 'Init and update submodules.' desc "Init and update submodules."
task :submodules do task :submodules do
unless ENV['SKIP_SUBMODULES'] unless ENV["SKIP_SUBMODULES"]
puts '======================================================' puts "======================================================"
puts 'Downloading YADR submodules...please wait' puts "Downloading YADR submodules...please wait"
puts '======================================================' puts "======================================================"
run %( run %(
cd $HOME/.yadr cd $HOME/.yadr
@ -130,12 +137,13 @@ task :submodules do
end end
end end
task default: 'install' task default: "install"
private private
def run(cmd) def run(cmd)
puts "[Running] #{cmd}" puts "[Running] #{cmd}"
`#{cmd}` unless ENV['DEBUG'] `#{cmd}` unless ENV["DEBUG"]
end end
def number_of_cores def number_of_cores
@ -149,22 +157,22 @@ def number_of_cores
end end
def run_bundle_config def run_bundle_config
return unless system('which bundle') return unless system("which bundle")
bundler_jobs = number_of_cores - 1 bundler_jobs = number_of_cores - 1
puts '======================================================' puts "======================================================"
puts 'Configuring Bundlers for parallel gem installation' puts "Configuring Bundlers for parallel gem installation"
puts '======================================================' puts "======================================================"
run %( bundle config --global jobs #{bundler_jobs} ) run %( bundle config --global jobs #{bundler_jobs} )
puts puts
end end
def install_rvm_binstubs def install_rvm_binstubs
puts '======================================================' puts "======================================================"
puts 'Installing RVM Bundler support. Never have to type' puts "Installing RVM Bundler support. Never have to type"
puts 'bundle exec again! Please use bundle --binstubs and RVM' puts "bundle exec again! Please use bundle --binstubs and RVM"
puts "will automatically use those bins after cd'ing into dir." puts "will automatically use those bins after cd'ing into dir."
puts '======================================================' puts "======================================================"
run %( chmod +x $rvm_path/hooks/after_cd_bundler ) run %( chmod +x $rvm_path/hooks/after_cd_bundler )
puts puts
end end
@ -172,24 +180,24 @@ end
def install_homebrew def install_homebrew
run %(which brew) run %(which brew)
unless $CHILD_STATUS.success? unless $CHILD_STATUS.success?
puts '======================================================' puts "======================================================"
puts "Installing Homebrew, the OSX package manager...If it's" puts "Installing Homebrew, the OSX package manager...If it's"
puts 'already installed, this will do nothing.' puts "already installed, this will do nothing."
puts '======================================================' puts "======================================================"
run %{ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"} run %{ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"}
end end
puts puts
puts puts
puts '======================================================' puts "======================================================"
puts 'Updating Homebrew.' puts "Updating Homebrew."
puts '======================================================' puts "======================================================"
run %(brew update) run %(brew update)
puts puts
puts puts
puts '======================================================' puts "======================================================"
puts 'Installing Homebrew packages...There may be some warnings.' puts "Installing Homebrew packages...There may be some warnings."
puts '======================================================' puts "======================================================"
run %(brew install zsh ctags git hub tmux reattach-to-user-namespace ripgrep ghi) run %(brew install zsh ctags git hub tmux reattach-to-user-namespace ripgrep ghi)
run %(brew install macvim --with-override-system-vim --with-lua --with-luajit) run %(brew install macvim --with-override-system-vim --with-lua --with-luajit)
puts puts
@ -197,9 +205,9 @@ def install_homebrew
end end
def install_fonts def install_fonts
puts '======================================================' puts "======================================================"
puts 'Installing patched fonts for Powerline/Lightline.' puts "Installing patched fonts for Powerline/Lightline."
puts '======================================================' puts "======================================================"
run %( cp -f $HOME/.yadr/fonts/* $HOME/Library/Fonts ) if macos? run %( cp -f $HOME/.yadr/fonts/* $HOME/Library/Fonts ) if macos?
if linux? if linux?
run %( mkdir -p ~/.fonts && cp ~/.yadr/fonts/* ~/.fonts && fc-cache -vf ~/.fonts ) run %( mkdir -p ~/.fonts && cp ~/.yadr/fonts/* ~/.fonts && fc-cache -vf ~/.fonts )
@ -208,39 +216,39 @@ def install_fonts
end end
def install_term_theme def install_term_theme
puts '======================================================' puts "======================================================"
puts 'Installing iTerm2 solarized theme.' puts "Installing iTerm2 solarized theme."
puts '======================================================' puts "======================================================"
run %( /usr/libexec/PlistBuddy -c "Add :'Custom Color Presets':'Solarized Light' dict" ~/Library/Preferences/com.googlecode.iterm2.plist ) run %( /usr/libexec/PlistBuddy -c "Add :'Custom Color Presets':'Solarized Light' dict" ~/Library/Preferences/com.googlecode.iterm2.plist )
run %( /usr/libexec/PlistBuddy -c "Merge 'iTerm2/Solarized Light.itermcolors' :'Custom Color Presets':'Solarized Light'" ~/Library/Preferences/com.googlecode.iterm2.plist ) run %( /usr/libexec/PlistBuddy -c "Merge 'iTerm2/Solarized Light.itermcolors' :'Custom Color Presets':'Solarized Light'" ~/Library/Preferences/com.googlecode.iterm2.plist )
run %( /usr/libexec/PlistBuddy -c "Add :'Custom Color Presets':'Solarized Dark' dict" ~/Library/Preferences/com.googlecode.iterm2.plist ) run %( /usr/libexec/PlistBuddy -c "Add :'Custom Color Presets':'Solarized Dark' dict" ~/Library/Preferences/com.googlecode.iterm2.plist )
run %( /usr/libexec/PlistBuddy -c "Merge 'iTerm2/Solarized Dark.itermcolors' :'Custom Color Presets':'Solarized Dark'" ~/Library/Preferences/com.googlecode.iterm2.plist ) run %( /usr/libexec/PlistBuddy -c "Merge 'iTerm2/Solarized Dark.itermcolors' :'Custom Color Presets':'Solarized Dark'" ~/Library/Preferences/com.googlecode.iterm2.plist )
# If iTerm2 is not installed or has never run, we can't autoinstall the profile since the plist is not there # If iTerm2 is not installed or has never run, we can't autoinstall the profile since the plist is not there
unless File.exist?(File.join(ENV['HOME'], '/Library/Preferences/com.googlecode.iterm2.plist')) unless File.exist?(File.join(ENV["HOME"], "/Library/Preferences/com.googlecode.iterm2.plist"))
puts '======================================================' puts "======================================================"
puts 'To make sure your profile is using the solarized theme' puts "To make sure your profile is using the solarized theme"
puts 'Please check your settings under:' puts "Please check your settings under:"
puts 'Preferences> Profiles> [your profile]> Colors> Load Preset..' puts "Preferences> Profiles> [your profile]> Colors> Load Preset.."
puts '======================================================' puts "======================================================"
return return
end end
# Ask the user which theme he wants to install # Ask the user which theme he wants to install
message = 'Which theme would you like to apply to your iTerm2 profile?' message = "Which theme would you like to apply to your iTerm2 profile?"
color_scheme = ask message, iTerm_available_themes color_scheme = ask message, iTerm_available_themes
return if color_scheme == 'None' return if color_scheme == "None"
color_scheme_file = File.join('iTerm2', "#{color_scheme}.itermcolors") color_scheme_file = File.join("iTerm2", "#{color_scheme}.itermcolors")
# Ask the user on which profile he wants to install the theme # Ask the user on which profile he wants to install the theme
profiles = iTerm_profile_list profiles = iTerm_profile_list
message = "I've found #{profiles.size} #{profiles.size > 1 ? 'profiles' : 'profile'} on your iTerm2 configuration, which one would you like to apply the Solarized theme to?" message = "I've found #{profiles.size} #{profiles.size > 1 ? "profiles" : "profile"} on your iTerm2 configuration, which one would you like to apply the Solarized theme to?"
profiles << 'All' profiles << "All"
selected = ask message, profiles selected = ask message, profiles
if selected == 'All' if selected == "All"
(profiles.size - 1).times { |idx| apply_theme_to_iterm_profile_idx idx, color_scheme_file } (profiles.size - 1).times { |idx| apply_theme_to_iterm_profile_idx idx, color_scheme_file }
else else
apply_theme_to_iterm_profile_idx profiles.index(selected), color_scheme_file apply_theme_to_iterm_profile_idx profiles.index(selected), color_scheme_file
@ -248,7 +256,7 @@ def install_term_theme
end end
def iTerm_available_themes def iTerm_available_themes
Dir['iTerm2/*.itermcolors'].map { |value| File.basename(value, '.itermcolors') } << 'None' Dir["iTerm2/*.itermcolors"].map { |value| File.basename(value, ".itermcolors") } << "None"
end end
def iTerm_profile_list def iTerm_profile_list
@ -281,30 +289,30 @@ end
def install_prezto def install_prezto
puts puts
puts 'Installing Prezto (ZSH Enhancements)...' puts "Installing Prezto (ZSH Enhancements)..."
run %( ln -nfs "$HOME/.yadr/zsh/prezto" "${ZDOTDIR:-$HOME}/.zprezto" ) run %( ln -nfs "$HOME/.yadr/zsh/prezto" "${ZDOTDIR:-$HOME}/.zprezto" )
# The prezto runcoms are only going to be installed if zprezto has never been installed # The prezto runcoms are only going to be installed if zprezto has never been installed
install_files(Dir.glob('zsh/prezto/runcoms/z*'), :symlink) install_files(Dir.glob("zsh/prezto/runcoms/z*"), :symlink)
puts puts
puts "Overriding prezto ~/.zpreztorc with YADR's zpreztorc to enable additional modules..." puts "Overriding prezto ~/.zpreztorc with YADR's zpreztorc to enable additional modules..."
install_files(Dir.glob('zsh/prezto-override/z*'), :symlink) install_files(Dir.glob("zsh/prezto-override/z*"), :symlink)
puts puts
puts 'Creating directories for your customizations' puts "Creating directories for your customizations"
run %( mkdir -p $HOME/.zsh.before ) run %( mkdir -p $HOME/.zsh.before )
run %( mkdir -p $HOME/.zsh.after ) run %( mkdir -p $HOME/.zsh.after )
run %( mkdir -p $HOME/.zsh.prompts ) run %( mkdir -p $HOME/.zsh.prompts )
if (ENV['SHELL']).to_s.include? 'zsh' if (ENV["SHELL"]).to_s.include? "zsh"
puts 'Zsh is already configured as your shell of choice. Restart your session to load the new settings' puts "Zsh is already configured as your shell of choice. Restart your session to load the new settings"
else else
puts 'Setting zsh as your default shell' puts "Setting zsh as your default shell"
if File.exist?('/usr/local/bin/zsh') if File.exist?("/usr/local/bin/zsh")
if File.readlines('/private/etc/shells').grep('/usr/local/bin/zsh').empty? if File.readlines("/private/etc/shells").grep("/usr/local/bin/zsh").empty?
puts 'Adding zsh to standard shell list' puts "Adding zsh to standard shell list"
run %( echo "/usr/local/bin/zsh" | sudo tee -a /private/etc/shells ) run %( echo "/usr/local/bin/zsh" | sudo tee -a /private/etc/shells )
end end
run %( chsh -s /usr/local/bin/zsh ) run %( chsh -s /usr/local/bin/zsh )
@ -315,9 +323,9 @@ def install_prezto
end end
def want_to_install?(section) def want_to_install?(section)
if ENV['ASK'] == 'true' if ENV["ASK"] == "true"
puts "Would you like to install configuration files for: #{section}? [y]es, [n]o" puts "Would you like to install configuration files for: #{section}? [y]es, [n]o"
STDIN.gets.chomp == 'y' STDIN.gets.chomp == "y"
else else
true true
end end
@ -325,9 +333,9 @@ end
def install_files(files, method = :symlink) def install_files(files, method = :symlink)
files.each do |f| files.each do |f|
file = f.split('/').last file = f.split("/").last
source = "#{ENV['PWD']}/#{f}" source = "#{ENV["PWD"]}/#{f}"
target = "#{ENV['HOME']}/.#{file}" target = "#{ENV["HOME"]}/.#{file}"
puts "======================#{file}==============================" puts "======================#{file}=============================="
puts "Source: #{source}" puts "Source: #{source}"
@ -347,28 +355,28 @@ def install_files(files, method = :symlink)
# Temporary solution until we find a way to allow customization # Temporary solution until we find a way to allow customization
# This modifies zshrc to load all of yadr's zsh extensions. # This modifies zshrc to load all of yadr's zsh extensions.
# Eventually yadr's zsh extensions should be ported to prezto modules. # Eventually yadr's zsh extensions should be ported to prezto modules.
source_config_code = 'for config_file ($HOME/.yadr/zsh/*.zsh) source $config_file' source_config_code = "for config_file ($HOME/.yadr/zsh/*.zsh) source $config_file"
if file == 'zshrc' if file == "zshrc"
File.open(target, 'a+') do |zshrc| File.open(target, "a+") do |zshrc|
if zshrc.readlines.grep(/#{Regexp.escape(source_config_code)}/).empty? if zshrc.readlines.grep(/#{Regexp.escape(source_config_code)}/).empty?
zshrc.puts(source_config_code) zshrc.puts(source_config_code)
end end
end end
end end
puts '==========================================================' puts "=========================================================="
puts puts
end end
end end
def needs_migration_to_vundle? def needs_migration_to_vundle?
File.exist? File.join('vim', 'bundle', 'tpope-vim-pathogen') File.exist? File.join("vim", "bundle", "tpope-vim-pathogen")
end end
def apply_theme_to_iterm_profile_idx(index, color_scheme_path) def apply_theme_to_iterm_profile_idx(index, color_scheme_path)
values = [] values = []
16.times { |i| values << "Ansi #{i} Color" } 16.times { |i| values << "Ansi #{i} Color" }
values << ['Background Color', 'Bold Color', 'Cursor Color', 'Cursor Text Color', 'Foreground Color', 'Selected Text Color', 'Selection Color'] values << ["Background Color", "Bold Color", "Cursor Color", "Cursor Text Color", "Foreground Color", "Selected Text Color", "Selection Color"]
values.flatten.each { |entry| run %( /usr/libexec/PlistBuddy -c "Delete :'New Bookmarks':#{index}:'#{entry}'" ~/Library/Preferences/com.googlecode.iterm2.plist ) } values.flatten.each { |entry| run %( /usr/libexec/PlistBuddy -c "Delete :'New Bookmarks':#{index}:'#{entry}'" ~/Library/Preferences/com.googlecode.iterm2.plist ) }
run %( /usr/libexec/PlistBuddy -c "Merge '#{color_scheme_path}' :'New Bookmarks':#{index}" ~/Library/Preferences/com.googlecode.iterm2.plist ) run %( /usr/libexec/PlistBuddy -c "Merge '#{color_scheme_path}' :'New Bookmarks':#{index}" ~/Library/Preferences/com.googlecode.iterm2.plist )
@ -376,13 +384,13 @@ def apply_theme_to_iterm_profile_idx(index, color_scheme_path)
end end
def success_msg(action) def success_msg(action)
puts '' puts ""
puts ' _ _ _ ' puts " _ _ _ "
puts ' | | | | | | ' puts " | | | | | | "
puts ' | |___| |_____ __| | ____ ' puts " | |___| |_____ __| | ____ "
puts ' |_____ (____ |/ _ |/ ___) ' puts " |_____ (____ |/ _ |/ ___) "
puts ' _____| / ___ ( (_| | | ' puts " _____| / ___ ( (_| | | "
puts " (_______\_____|\____|_| " puts " (_______\_____|\____|_| "
puts '' puts ""
puts "YADR has been #{action}. Please restart your terminal and vim." puts "YADR has been #{action}. Please restart your terminal and vim."
end end