使用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以上:

$ 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>"

VimAlt键的支持

考虑到后续有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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值