第一次接触VIM 应该是在刚接触 UBUNTU 的时候。当时;按照网站上的教程;安装了vim 工具。打开 vim 后;一脸懵;输入文字;发现没有任何反映;有时候偶尔输入一两个字母;也找不到规律;只是看到光标奇怪的跳动;文字奇怪的变化。
后来;慢慢了解到vim的一些简单操作: 打开vim后;按 “i” 可以进入编辑模式;此时可以正常输入要写入的信息;最后;按退出编辑模式;按下“: w q”退出vim。此后; 在终端中;我开始慢慢使用vim修改一些文件的内容;当然;仅仅是一些小修小改;如果遇到大面积改动的话;我还是更倾向于使用 VScode*或者其他 UI 编辑器。最主要原因还是因为;这些编辑器可以大面积复制和粘贴。
当我看到 VIM 的一些快捷键操作的的时候;vim仿佛焕发了全新的光芒: 借助于Normal模式下的快捷建操作;可以对文档进行快速操作;比如: 按下 “x” 可以删除光标下的字符;“3x” 就可以从光标处连续删除3个字符;按下“dd”可以直接删除一整行内容……
有了这些快捷键;VIM修改文件的速度大幅度提高;所以;vim成为了在终端下修改字符文件的一大利器。vim快捷指令有很多过于复杂;所以对于新手不太友好;只能慢慢练习;熟能生巧。而且;实际中很多跨文件操作;只依靠vim自身;很难实现。
在之前的操作中;进入vim后;通常需要手动开启行号(即;在Normal模式下;输入;:set nu;);这显然不是最佳效果;所以;我开始了解vim配置文件。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 通用设置
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
let mapleader = ;,; ; 定义<leader>键
set nocompatible ; 设置不兼容原始vi模式
filetype on ; 设置开启文件类型侦测
filetype plugin on ; 设置加载对应文件类型的插件
set noeb ; 关闭错误的提示
syntax enable ; 开启语法高亮功能
syntax on ; 自动语法高亮
set t_Co=256 ; 开启256色支持
set cmdheight=2 ; 设置命令行的高度
set showcmd ; select模式下显示选中的行数
set ruler ; 总是显示光标位置
set laststatus=2 ; 总是显示状态栏
set number ; 开启行号显示
set cursorline ; 高亮显示当前行
set whichwrap;=<,>,h,l ; 设置光标键跨行
set ttimeoutlen=0 ; 设置<ESC>键响应时间
set virtualedit=block,onemore ; 允许光标出现在最后一个字符的后面
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 代码缩进和排版
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
set autoindent ; 设置自动缩进
set cindent ; 设置使用C/C;;语言的自动缩进方式
set cinoptions=g0,:0,N-s,(0 ; 设置C/C;;语言的具体缩进方式
set smartindent ; 智能的选择对其方式
filetype indent on ; 自适应不同语言的智能缩进
set expandtab ; 将制表符扩展为空格
set tabstop=4 ; 设置编辑时制表符占用空格数
set shiftwidth=4 ; 设置格式化时制表符占用空格数
set softtabstop=4 ; 设置4个空格为制表符
set smarttab ; 在行和段开始处使用制表符
set nowrap ; 禁止折行
set backspace=2 ; 使用回车键正常处理indent,eol,start等
set sidescroll=10 ; 设置向右滚动字符数
set nofoldenable ; 禁用折叠代码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 代码补全
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
set wildmenu ; vim自身命名行模式智能补全
set completeopt-=preview ; 补全时不显示窗口;只显示补全列表
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 搜索设置
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
set hlsearch ; 高亮显示搜索结果
set incsearch ; 开启实时搜索功能
set ignorecase ; 搜索时大小写不敏感
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 缓存设置
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
set nobackup ; 设置不备份
set noswapfile ; 禁止生成临时文件
set autoread ; 文件在vim之外修改过;自动重新读入
set autowrite ; 设置自动保存
set confirm ; 在处理未保存或只读文件的时候;弹出确认
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 缓存设置
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
set Mouse+=a
set selection=exclusive
set selectmode=mouse,key
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
经过配置之后的vim;就比较像一款编程工具了;首先;可以设置自己喜欢的颜色主题;这样;看代码更加方便。其次;行号不需要再手动开启;最主要的是;可以通过参数配置;开启鼠标;通过鼠标;跳转光标。也可以跟系统共用剪切板;将文档中的内容;复制到其他地方。
在vim中;有些快捷键按起来比较困难;比如;复制选择区内容到剪切板(快捷键为 “ “;y ” ;没错;先按下shift键;再依次按下 ” ; 键;最后松开shift 按下 y 键 );这么复杂的按键组合;显然不适合常用;所以;就需要对按键组合进行重映射。
; 查看vimplus的help文件
nnoremap <leader>h :view ;let &l:modifiable=0 ~/.vimplus/help.md<cr>
; 打开当前光标所在单词的vim帮助文档
nnoremap <leader>H :execute ;:help ; . expand(;<cword>;)<cr>
; 重新加载vimrc文件
nnoremap <leader>s :source $MYVIMRC<cr>
; 安装、更新、删除插件
nnoremap <leader><leader>i :PlugInstall<cr>
nnoremap <leader><leader>u :PlugUpdate<cr>
nnoremap <leader><leader>c :PlugClean<cr>
; 分屏窗口移动
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l
; 复制当前选中到系统剪切板
vmap <leader><leader>y ;;y
; 将系统剪切板内容粘贴到vim
nnoremap <leader><leader>p ;;p
重映射不仅可以映射某些按键组合;还可以映射某些自定义功能。在这些快捷键的加持下;vim的操作更加快捷
让VIM功能更上一层楼的;是VIM的扩展插件;这些拓展插件;让使用者可以完全脱离鼠标;只用键盘;就可以完成所有工作。
既然要安装插件;那就需要有专门的程序区管理这些插件;当下;vim主要使用vim_plug的管理插件。
vim插件管理器
mkdir -p ~/.vim/autoload/
cp plug.vim ~/.vim/autoload/plug.vim
在vimawesome上有很多vim插件;使用者可以在该网站查找自己想要的插件。
常用的插件有以下几种;
taglist.vim “标签列表(函数列表)
NERDTree.vim ;目录树
OmniCppComplete.vim ; 语法补全;不如 youcompleteme 功能强大
VimGDB.vim
LookupFile ; 查找文件
snipMate ; 模板操作
MRU ;最经访问文件
#安装ctags
sudo apt-get install universal-ctags
#安装cscope
sudo apt-get install cscope
#安装vim-gtk,与系统共用剪切板
sudo apt-get install vim-gtk
sudo apt-get install xdotool
sudo apt install ack-grep
新手在配置vim的过程中;会遇到各种各样的的问题;比如;快捷键冲突、奇奇怪怪的bug;甚至会出现和预想南辕北辙的情况。所以;比较推荐安装其他人配置好的vim, 等对 vim 足够熟悉后;再考虑组建适合自己的 vim
git clone https://github.com/chxuan/vimplus.git ~/.vimplus
cd ~/.vimplus
./install.sh
安装 markdown-preview
将Plug ;iamcco/markdown-preview.nvim;, { ;do;: { -> mkdp#util#install() }, ;for;: [;markdown;, ;vim-plug;]} 加入到vimrc中然后在vim里运行 :PlugInstall下载markdown-preview插件 安装npm sudo apt install nodejs npm , nodejs --version 有输出表示成功 运行 :call mkdp#util#install() 最后用vim打开个md文件;输入:MarkdownPreview看到预览则成功