刪除命令 d D x
dd / D 刪除行
dw 刪除單詞
nd? /? nx 刪除n個字符
ndd 刪除n行
D 刪除到行尾
選取
v 進入字符可視化模式
V 進入行可視化模式
Ctrl+v 進入塊可視化模式
vi{選中{}中間的內容,不包括{}
va{ 選中{}中間內容,包括{}
選中()中間內容
vi< 選中<>中間內容
vi[ 選中[]中間內容
vit 選中中間的內容
vi” 選中”"中間內容
vi’ 選中”中間的內容、
vis 選中一個句子
vib 選中一個block
viw 選中一個單詞
vip 選中一個段落
r字符 所有字符替換為新字符
u U ~ 分別是所有字母變小寫、變大寫、反轉大小寫
“>”和“<" 將選中字符右移或左移 shiftwidth位置
J 命令可以將高亮顯示的文本內容合并為一行,同時以空格來分隔各行。如果不希望在行間插入空格,那么可以使用 gJ 命令。
在可視化模式下,按下 : 鍵就可以對選定范圍進行操作。例如:我們先在可視化模式下選中文本,然后執行 :write block.txt 命令,就可以將文本塊寫入另一文件中。選擇多行,然后執行 :sort 命令,則可以對選中的文本進行排序。
目錄與配置
? ~/.vim/plugin
? ~/.vim/doc
? ~/.vim/syntax
~/.vimrc
vim有許多可選的插件管理器如Vundle, Pathogen, Vim-plug, VAM,
安裝Vim-plug
下載Vim-plug并把它放在autoload目錄里
Unix
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
? ? https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Neovim
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
? ? https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Windows
md ~\vimfiles\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile($uri, $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("~\vimfiles\autoload\plug.vim"))
管理插件
編輯.vimrc(Neovim是~/.config/nvim/init.vim)
添加vim-plug配置,以call plug#begin()開頭,call plug#end()結尾,中間是插件列表,begin可以接受參數指定存放插件的位置:
" Specify a directory for plugins (for Neovim: ~/.local/share/nvim/plugged)
call plug#begin('~/.vim/plugged')
" Make sure you use single quotes
" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
Plug 'junegunn/vim-easy-align'
" Any valid git URL is allowed
Plug 'https://github.com/junegunn/vim-github-dashboard.git'
" Multiple Plug commands can be written in a single line using | separators
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
" On-demand loading
Plug 'scrooloose/nerdtree', { 'on':? 'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
" Using a non-master branch
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
" Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
Plug 'fatih/vim-go', { 'tag': '*' }
" Plugin options
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
" Plugin outside ~/.vim/plugged with post-update hook
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
" Unmanaged plugin (manually installed and updated)
Plug '~/my-prototype-plugin'
" Initialize plugin system
call plug#end()
安裝插件
:PlugInstall
其他命令
PlugUpdate:升級插件;
PlugClean:刪除未被使用的插件目錄;
PlugUpgrade:升級Vim-plug自身;
PlugStatus:查看插件狀態;
更多配置和命令請參考Vim-plug官方文檔