vim实用操作
Posted NodYoung
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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实用操作的主要内容,如果未能解决你的问题,请参考以下文章