vim实用操作

Posted NodYoung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim实用操作相关的知识,希望对你有一定的参考价值。

多行注释与删除注释

参考:vim常用命令之多行注释和多行删除

多行删除

命令输入:32,65d,删除32-65行
ndd,删除光标所在的向下n行。
:set nu 显示行号

Vundle插件管理

vundle是一款插件管理工具。安装方式:
1. 清空.vim/ 下的所有原生目录,再通过如下命令安装 vundle:git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
2. 在 .vimrc 增加相关配置信息。
3. 安装插件,在 .vimrc 中执行 :PluginInstall;卸载::PluginClean;更新: :PluginUpdate。
参考:https://github.com/yangyangwithgnu/use_vim_as_ide#2

文件跳转:ctrlp.vim

当你想打开某个文件时,只要按下 Ctrl + p 快捷键,输入文件名。 所有和这个文件名匹配的文件都会被按照优先级列出来,按下 enter 或者 Ctrl + t 就可以在当前 buffer 或者新 tab 页打开你要的文件了。
.vimrc中的配置:

let g:ctrlp_map = '<c-p>' 
let g:ctrlp_cmd = 'CtrlP'
" 设置过滤不进行查找的后缀名 
let g:ctrlp_custom_ignore = '\\v[\\/]\\.(git|hg|svn|pyc)$' 

参考:http://www.zlovezl.cn/articles/vim-plugins-cannot-live-without/

自动补全:YouCompleteMe(YCM)

自动代码补全工具。
配置:

" 设置跳转到方法/函数定义的快捷键 
nnoremap <leader>j :YcmCompleter GoToDefinitionElseDeclaration<CR> 
" 触发补全快捷键 
let g:ycm_key_list_select_completion = ['<TAB>', '<c-n>', '<Down>'] 
let g:ycm_key_list_previous_completion = ['<S-TAB>', '<c-p>', '<Up>'] 
let g:ycm_auto_trigger = 1 
" 最小自动触发补全的字符大小设置为 3 
let g:ycm_min_num_of_chars_for_completion = 3 
" YCM的previw窗口比较恼人,还是关闭比较好 
set completeopt-=preview 

参考:http://www.zlovezl.cn/articles/vim-plugins-cannot-live-without/

内容搜索:ag.vim

安装vim的ag插件必须先安装ag命令行工具。
配置:nnoremap <leader>ag :Ag! ""<left>
参考:http://www.zlovezl.cn/articles/vim-plugins-cannot-live-without/

我的.vimrc

" 定义快捷键的前缀,即<Leader>
let mapleader=";"

" 开启文件类型侦测
filetype on
" 根据侦测到的不同类型加载对应的插件
filetype plugin on
" 设置一个tab占用4个空格,并将tab替换为空格
set tabstop=4
set expandtab
" 基于缩进或语法进行代码折叠
"set foldmethod=indent
set foldmethod=syntax
" 启动 vim 时关闭折叠代码
set nofoldenable
"za,打开或关闭当前折叠;zM,关闭所有折叠;zR,打开所有折叠

nnoremap <leader>j gt
nnoremap <leader>k gT
" 设置快捷键将选中文本块复制至系统剪贴板
vnoremap <leader>y "+y
" 设置快捷键将系统剪贴板内容粘贴至 vim
nmap <Leader>p "+p
" 定义快捷键关闭当前分割窗口
nmap <Leader>q :q<CR>
" 定义快捷键保存当前窗口内容
nmap <Leader>w :w<CR>
" 定义快捷键保存所有窗口内容并退出 vim
nmap <Leader>WQ :wa<CR>:q<CR>
" 依次遍历子窗口
nnoremap <leader>n <C-W><C-W>

" 让配置变更立即生效
autocmd BufWritePost $MYVIMRC source $MYVIMRC

" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
" vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'kien/ctrlp.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'rking/ag.vim'
" Plugin 'vim-signature'
" 插件列表结束
call vundle#end()
filetype plugin indent on

" CtrlP
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
" filter some suffixes
let g:ctrlp_custom_ignore = '\\v[\\/]\\.(git|hg|svn|pyc)$'

" YouCompleteMe
" 设置跳转到方法/函数定义的快捷键 
nnoremap <leader>d :YcmCompleter GoToDefinitionElseDeclaration<CR> 
" " 触发补全快捷键 
let g:ycm_key_list_select_completion = ['<TAB>', '<c-n>', '<Down>'] 
let g:ycm_key_list_previous_completion = ['<S-TAB>', '<c-p>', '<Up>'] 
let g:ycm_auto_trigger = 1 
" " 最小自动触发补全的字符大小设置为 3 
let g:ycm_min_num_of_chars_for_completion = 3 
" " YCM的previw窗口比较恼人,还是关闭比较好 
set completeopt-=preview 

" ag
nnoremap <leader>ag :Ag! ""<left>

以上是关于vim实用操作的主要内容,如果未能解决你的问题,请参考以下文章

vim - 实用技巧

《Vim实用技巧》阅读笔记 --- 移动及跳转

VIM实用指南认识VIM的三种模式

VIM实用指南(16)vim粘贴格式错乱

VIM实用指南复制,粘贴 ,删除,撤销,重做指令速记

VIM实用指南复制,粘贴 ,删除,撤销,重做指令速记