vim 有三种模式:
1 2 3
| - 命令模式 或 普通模式 - 插入模式 或 编辑模式 - 扩展命令模式 或 命令行模式 或 末行模式
|
命令模式
光标跳转
字符间跳转
单词间跳转
当前页跳转
行首行尾跳转
行间移动
句间和段落间移动
翻屏操作
1 2 3 4
| ctrl+f ctrl+d ctrl+b ctrl+u
|
字符编辑
替换 replace
删除 delete
复制 yank
粘贴 paste
命令模式 切换到 插入模式
以下快捷键, 进入插入模式
插入模式
从光标前输入数据
末行模式
1 2 3 4 5 6
| :wq :q! :r file :w file :!command :r!command
|
地址定界:
1 2 3 4 5 6 7 8 9 10 11
| n n,n n,+n . $ %
/pattern/ /pattern1/,/pattern2/ n,/pattern/ /pattern/,$
|
地址定界后跟一个编辑命令:
查找并替换:
1 2 3 4 5 6 7 8 9
| s/要查找的内容/替换为的内容/修饰符 %s/要查找的内容/替换为的内容/修饰符
要查找的内容可使用正则 替换为的内容不能使用正则,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容 修饰符: i 忽略大小写 g 全局替换 gc 全局替换, 每次替换前询问
|
高级用法
示例:粘贴”wang”100 次
1 2 3 4 5
| di" # 光标在” “之间,则删除” “之间的内容 yi( # 光标在()之间,则复制()之间的内容 vi[ # 光标在[]之间,则选中[]之间的内容 dtx # 删除字符直到遇见光标之后的第一个 x 字符 ytx # 复制字符直到遇见光标之后的第一个 x 字符
|
定制 vim 的工作特性
配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| set nu set nocompatible set showmode set showcmd set encoding=utf-8 set t_Co=256
" 缩进 set autoindent set tabstop=4
" 外观 set wrap set linebreak set wrapmargin=2 set showmatch set hlsearch set ignorecase set smartcase
" 编辑 set autoread set wildmenu
" 插件 autocmd FileType php set omnifunc=phpcomplete#CompletePHP
set tags=/data/wwwroot/php-7.1.32/tags
|
可视化模式
进入可视化模式:
选中的文字可以被删除、复制、变更、过滤、搜索、替换等
示例:在文件每一行行首插入 # 然后再删除
1 2 3 4 5 6 7 8 9
| gg ctrl + v G I 输入 ESC退出 插入 ctrl + v d 删除成功 ESC退出
|
vim 总结
![]()
![]()
![]()