使用Vim 8.0搭建远程服务器端IDE(一)
我在嵌入式开发工作中主要进行Shell/Python/C编程,并且由于经常需要在Linux服务器端构建Yocto项目,所以SecureCRT +Vim可以说是我的最佳开发工具组合之一。Vim 8.0增加了异步I/O和通道的支持,所以适当的配置和插件便可以把Vim 8.0改造成一个远程服务器端的IDE,大大提高开发效率。安装Vim 8.0检查Linux服务器端的Vim版本是否已经是8.0以上:...
我在嵌入式开发工作中主要进行Shell/Python/C编程,并且由于经常需要在Linux服务器端构建Yocto项目,所以SecureCRT +Vim可以说是我的最佳开发工具组合之一。Vim 8.0增加了异步I/O和通道的支持,所以适当的配置和插件便可以把Vim 8.0改造成一个远程服务器端的IDE,大大提高开发效率。
安装Vim 8.0
检查Linux服务器端的Vim版本是否已经是8.0以上:
$ vim --version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Feb 7 2019 13:12:21)
如果还是7.X版本的话,通过如下命令升级到8.X:
$ sudo add-apt-repository ppa:jonathonf/vim
$ sudo apt update
$ sudo apt install vim
Vim环境配置
在Linux服务器端进入主用户目录,可以看到.vimrc文件和.vim文件夹,这两个就是Vim的所有配置信息。
.vimrc文件通用配置
主用户目录下的.vimrc就是vim主配置文件,该文件不是必备的,如果没有就手动创建一个,vim每次启动都会调用这些配置。
通过.vimrc可以为vim进行个性化配置,包括高亮显示,对齐风格,快捷键组合,插件管理等,下面是最基础一组通用配置,适合入门级用户:
注意:.vimrc里面的双引号"起注释的作用。
"common conf {{ 通用配置
set ai "自动缩进
set bs=2 "在insert模式下用退格键删除
set showmatch "代码匹配
set laststatus=2 "总是显示状态行
set expandtab "以下三个配置配合使用,设置tab和缩进空格数
set shiftwidth=4
set tabstop=4
set cursorline "为光标所在行加下划线
set number "显示行号
set rnu "显示相对行号
set autoread "文件在Vim之外修改过,自动重新读入
set ignorecase "检索时忽略大小写
set fileencodings=utf-8,gbk "使用utf-8或gbk打开文件
set hls "检索时高亮显示匹配项
set helplang=cn "帮助系统设置为中文
set ruler "设置标尺
set cindent "c语言分格对齐
set history=1000 "命令历史纪录1000行
set showcmd "显示命令
filetype indent on "根据不同文件类型对齐
syntax on "语法支持
colorscheme default "语法高亮主题使用默认
let &termencoding=&encoding "终端编码使用和encoding一样的编码
"}}
"打开文件自动跳到上次查看行
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal g'\"" | endif
endif
标签页配置
Vim除了常用的窗口(window)和缓存区(buffer)外,还有标签页(tab)
我们在.vimrc里面配置标签页相关的快捷方式:空格键+t创建新的标签页,Ctrl+h/l来切换不同的标签页:
"conf for tabs, 为标签页进行的配置,通过ctrl h/l切换标签等
let mapleader = ' '
nnoremap <C-l> gt
nnoremap <C-h> gT
nnoremap <leader>t :tabe<CR>"
Vim对Alt键的支持
考虑到后续有10多个插件要安装,每个插件都会有一些快捷键命令,为了防止Ctrl为首的快捷键组合与Vim默认的快捷键冲突,所以我们需要把Alt键给利用起来,下面是.vimrc里面把Alt键映射为终端meta键的函数:
" vim ALT key
function! Terminal_MetaMode(mode)
set ttimeout
if $TMUX != ''
set ttimeoutlen=30
elseif &ttimeoutlen > 80 || &ttimeoutlen <= 0
set ttimeoutlen=80
endif
if has('nvim') || has('gui_running')
return
endif
function! s:metacode(mode, key)
if a:mode == 0
exec "set <M-".a:key.">=\e".a:key
else
exec "set <M-".a:key.">=\e]{0}".a:key."~"
endif
endfunc
for i in range(10)
call s:metacode(a:mode, nr2char(char2nr('0') + i))
endfor
for i in range(26)
call s:metacode(a:mode, nr2char(char2nr('a') + i))
call s:metacode(a:mode, nr2char(char2nr('A') + i))
endfor
if a:mode != 0
for c in [',', '.', '/', ';', '[', ']', '{', '}']
call s:metacode(a:mode, c)
endfor
for c in ['?', ':', '-', '_']
call s:metacode(a:mode, c)
endfor
else
for c in [',', '.', '/', ';', '{', '}']
call s:metacode(a:mode, c)
endfor
for c in ['?', ':', '-', '_']
call s:metacode(a:mode, c)
endfor
endif
endfunc
call Terminal_MetaMode(0)
这样我们就可以在.vimrc里面配置Alt+其他任何键作为快捷键组合:
nnoremap <m-a> :A<CR>
这些配置好了以后,我们接下来就可以进入Vim 8.0插件管理了。
待续:Vim 8.0非常好用的插件管理器plug,模糊查找文件利器LeaderF,自动化生成tags文件工具gutentags等等。
更多推荐



所有评论(0)