人生就是没玩没了的杯具啊!

用了太多的东西,php/python/shell/rails,结果总是在服务器上/bin/bash,cd来cd去,目录结构复杂的话分分钟要崩溃的说,这里没提java,如果在服务器上用缺省的vi来编辑java代码,死掉的说!!!

没办法,打造一个至少可用的vim吧。

首先就是不能彻底替换掉原有的vi,原因如下:有的时候会用手机登陆服务器,那将情何以堪啊。

所以必须手动编译一个

wget ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2  
tar xf vim-8.0.tar.bz2  
cd vim80  
./configure --prefix=/export/servers/vim --with-features=huge --enable-rubyinterp --enable-pythoninterp  --enable-luainterp
make  
make install  

注意,我把新的vim装到了/export/servers/vim,而且装了ruby/python/lua的支持。

第二,装好vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim  

第三,编辑~/.vimrc8文件

cat <EOF> ~/.vimrc8  
set nocompatible              " be iMproved, required  
filetype off                  " required

set rtp+=~/.vim/bundle/Vundle.vim  
call vundle#begin()  
Plugin 'VundleVim/Vundle.vim'

Plugin 'https://github.com/scrooloose/nerdtree'  
Plugin 'https://github.com/jistr/vim-nerdtree-tabs'  
Plugin 'https://github.com/ervandew/supertab'

call vundle#end()            " required  
filetype plugin indent on    " required

map <leader>n <plug>NERDTreeTabsToggle <CR>  
map <C-l> :tabn<CR>  
map <C-n> :tabnew<CR>  
map <C-k> :bp<CR>  
map <C-j> :bn<CR>

let NERDTreeIgnore=['\.pyc', '~$', '\.swo$', '\.swp$', '\.git', '\.hg', '\.svn', '\.bzr', '\.class']  
let g:NERDTreeChDirMode=0  
let g:NERDTreeQuitOnOpen=0  
let g:NERDTreeMouseMode=2  
let g:NERDTreeShowHidden=1  
let g:NERDTreeWinSize=20  
let g:NERDTreeShowLineNumbers=1  
let g:NERDTreeShowBookmarks=1  
let g:NERDTreeKeepTreeInNewTab=1  
let g:NERDTreeDirArrowExpandable = '▸'  
let g:NERDTreeDirArrowCollapsible = '▾'  
let g:nerdtree_tabs_open_on_console_startup=1  
let g:nerdtree_tabs_autofind=1 

autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif 

EOF  

解释一下:

  • map都是快捷键,缺省是\
  • \n 打开树
  • \e 是在编辑文件时,调到左边目录,并定位到文件名
  • ctrl+n 新建一个文件标签
  • ctrl+l 在标签文件间转换
  • ctrl+k 编辑文件时,打开上一个编辑的历史文件
  • ctrl+p 编辑文件时,打开下一个编辑的历史文件
  • autocmd那行:关闭vim时,如果打开的文件除了NERDTree没有其他文件时,它自动关闭,减少多次按:q!。

另外NERDTree还有一些缺省键,在左边的目录窗口键入?,就可以看到

  • o 在已有窗口中打开文件、目录或书签,并跳到该窗口
  • t 在新 Tab 中打开选中文件/书签,并跳到新 Tab
  • i split 横向劈开一个新窗口,打开选中文件,并跳到该窗口
  • s vsplit 竖向劈开一个新窗口,打开选中文件,并跳到该窗口
  • ctrl+w+w 光标自动在左右侧窗口切换
  • A 放大左侧目录窗口
  • m 在左下显示文件操作模式

这就基本能用了,第一次初始化:

/export/servers/vim/bin/vim -u ~/.vimrc8
进去后运行
:PluginInstall

最后别忘记编辑~/.bashrc,增加一个alias,避免跟老的vi冲突

vi ~/.bashrc  
......
alias nvi="/export/servers/vim/bin/vim -u ~/.vimrc8"  

使用方法:

nvi 文件  

vi的一些快捷键:

  • :!command 运行一行命令,比如编辑js的时候运行一下webpack就很有作用了。
  • :!上箭头 调出上一次执行的命令
  • :!ctrl+f 调出以前执行的命令的列表,从中选一个
  • set nolist 不显示tab之类的字符占位,set list就是显示了
  • :noh 取消最后一次搜索后高亮显示的搜索结果
  • :so % 编辑~/.vimrc的时候,%表示当前文件,so是source的缩写,所以本句就是重新加载~/.vimrc文件,但不重启vim
comments powered by Disqus