Vim秘籍
删除命令 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官方文档