windows SecureCRT SSH VIM
先看最后的效果图,感觉还是很满意的,vimrc详细配置:https://github.com/lolowhite/vimrc.git
来公司工作半年了,日常工作都是在window下远程开发。之前在学校的时候虽然也搞过这个配置,但是每次都是失败告终,总有不满意的地方,像颜色不搭、补全没有,使用不顺手等。这次元旦在家,总算搞了一个满意的配置出来,下面是我的配置过程。
首先我非常不喜欢使用别人的配置,因为那样你不知道,别人做了什么配置,改了哪些快捷键,这很容易和你的常识造成冲突,所以,这次我从零开始,一个个装插件,改自己的配置文件每一行,确保他是在我的控制之内。我也尝试用过space-vim,就是因为这个原因,我决定做一个自己的配置。
SecureCRT 配置
首先选择一个远程连接工具。四年前,我第一次接触SecureCRT,用了之后感觉界面很丑,特别是字体。后来又用了一段时间xshell,发现xshell漂亮多了,到了公司,我也是首先选择xshell,尽管公司很多员工使用的是SecureCRT。xshell免费版不能用了,加上xshell不支持usb-key,被迫不得不用回SecureCRT。现在发现SecureCRT丑,是因为以前用的版本第,不会配置。所以终端SecureCRT和xshell还是选择SecureCRT吧。百度网盘链接:https://pan.baidu.com/s/12Awfw5_4H892ThKTGo2CbQ 提取码:92gl。
主题我选择Solarized,使用的配置https://gist.github.com/schmrlng/737c4a1672442bd15b60
With SecureCRT closed, edit your Global.ini which lives by default in %appdata%\VanDyke\Config\Global.ini,find the three lines the start with B:"ANSI Color RGB" and replace it and the two lines of hex below it with:
B:"ANSI Color RGB"=00000040 00 2b 38 00 dc 32 2f 00 85 99 00 00 b5 89 00 00 26 8b d2 00 d3 36 82 00 2a a1 98 00 ee e8 d5 00 07 36 42 00 cb 4b 16 00 58 6e 75 00 65 7b 83 00 83 94 96 00 6c 71 c4 00 93 a1 a1 00 fd f6 e3 00
(from https://web.archive.org/web/20140117045940/http://jessicalitwin.com/index.php/2013/02/solarized-for-securecrt/)
然后改终端的类型、字体和大小,options->Edit Default Session,Terminal->Emulation,使用xterm类型,勾上ANSI Color。Terminal->Appearance,字体选择Consolas,11号大小比较合适。(我不想听终端的声音,把Terminal的Audio bell关了,如果你想在vim中使用鼠标滚动翻页,可以把Terminal的send scroll wheel events to remote勾上,我为了脱离鼠标操作vim,这个就不勾了)
vim配置
我现在很想直接把我的配置拿出来,然后一个个解释分别是干嘛的。联想到以前的经历,估计这样没多少人会继续往下看了,我这篇文章的意义就没了,所以我还是一步步来。
公司老员工他们使用的是配置都是祖传的,里面有很多过时的插件,比如taglist,还有很多被注释了没用的设置。鉴于已经是2018年末,2019年初,vim都有异步的终端了,还是有必要重新搞一个现代化的配置的。
公司开发语言有点类似于c语言,所以插件YouCompleteMe自动补全是必须的。插件管理我就选择了Vundle,Vundle的安装步骤如下:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
然后编辑~/.vimrc文件,加入下面的
set nocompatible " be iMproved, required
filetype off " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end() " required
filetype plugin indent on " required
YouCompleteMe
这个插件是最难安装的,如果你能找代理下载,最好找个代理,不然可能很慢。安装这个的步骤其实按照GitHub的指引就行,但是GitHub故意把最后一个步骤漏掉,让你去拷贝配置文件,也是为了让你清楚有哪些配置,但是对新手不友好。下面是详细安装步骤(默认Ubuntu 16.04 and later:),在.vimrc文件中的'Plugin 'VundleVim/Vundle.vim'下面加上'Plugin 'Valloric/YouCompleteMe',然后:PluginInstall。这个只是把YouCompleteMe下载到了本地,还需要编译,下面是步骤:
sudo apt install build-essential cmake python3-dev
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --clang-completer
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py ~/.vim/
然后在配置文件里面加入下面的配置:
" YouComleteMe let g:ycm_server_python_interpreter='/usr/bin/python3'
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
let g:ycm_add_preview_to_completeopt = 0
set completeopt=menu,menuone
前面两句是必须的,后面两个根据个人需求。第一个指定python路径,离2020年不远了,还是用python3吧。第二行指定配置文件。后面两行是关闭函数原型预览窗口,这个窗口会破环原来的布局,个人倾向于关掉。
tagbar
符号列表在查看文件结构的时候很有帮助,对我来说是必须的。
首先需要安装ctags:
sudo apt install exuberant-ctags
然后添加插件majutsushi/tagbar,同样在.vimrc里面加入
Plugin 'majutsushi/tagbar'
然后:PluginInstall,就安装完成了。
有一些默认配置需要修改,第一个是在打开vim的时候激活tagbar,第二个是映射键盘快捷键,F4开启和关闭tagbar
" tarbar
autocmd Vimenter * :TagbarOpen
nmap <F4> :TagbarToggle<CR>
nerdtree
这个插件可以在左边打开一个文件导航窗口,很有ide的亲切感。
我选择的是scrooloose/nerdtree,同样在.vimrc里面加入这个插件,然后:PluginInstall,最后修改自己的配置,(后面插件安装和配置的方法都是这样的,我就不赘述了)
Plugin 'scrooloose/nerdtree'
我的配置是
" nerdtree
" open a NERDTree automatically when vim starts up
autocmd Vimenter * NERDTree
" open a NERDTree automatically when vim starts up if no files were specified
autocmd StdinReadPre * let s:std_in=1
autocmd Vimenter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
" open NERDTree automatically when vim starts up on opening a directory
autocmd StdinReadPre * let s:std_in=1
autocmd Vimenter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif
" close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
" if open file, then focus it
autocmd Vimenter * wincmd l
nmap <F3> :NERDTreeToggle<CR>
最后两行是我自己加的,希望在打开vim的时候,切换到待编辑的文件去,而不是停留在nerdtree窗口选择文件。快捷键F3可以选择切换nerdtree的打开关闭状态。其余的配置是GitHub提供给的,很人性化。
airline
这个插件是提供文件的状态信息,space-vim里面的就很漂亮,我第一次装上这个插件的时候,就感觉非常漂亮。
安装插件:
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
配置如下:
" aireline
set t_Co=256
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
map <C-N> :bn<CR>
map <C-P> :bp<CR>
map <C-D> :bd<CR>
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#symbol = '!'
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '◀'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.whitespace = 'Ξ'
t_Co是支持彩色,然后'g:airline#extensions#tabline#enabled'和'g:airline#extensions#tabline#buffer_nr_show'开启标签栏显示,快捷键ctrl-p、ctrl-n、ctrl-d分别映射上一个buffer、下一个buffer、关闭buffer。后面的配置是支持Unicode符号。