多行註釋與刪除註釋
多行刪除
命令輸入: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>