vim 20160607
vim的几种模式
- 普通模式
- 插入模式
- 选择模式
- 可视模式
- 面向字符文本
- 面向行文本
- 面向块文本
- 命令行模式
- 操作待决断模式
move
- h左 j下 k上 l右
- w 跳转到下一个单词首
- W 跳转到下一个字符串
- b 跳转到上一个单词首
- e 跳转到下一个单词尾
- ^ 跳转到本行第一个非空字符
- 0 跳转到行首
- $ 跳转到行尾
d
- dw 删除一个单词
- d$ 删除到结尾 --> 同 D
- d0 删除到行首
- d^ 删除到第一个字符,不包含空白符
- dd 删除当前行
c
- 类似d, 但在删除后进入插入模式
- cc 同 大写S、C, 与dd一样,但删除后进入插入模式
s
- 删除当前字母 进入插入模式
- 大写S 删除当前行,并进入插入模式
u 和 U
- u 撤消一次
- u 撤消本行的操作
- Ctrl+r 撤消以前的撤消操作
Ctrl + g
- 显示當前編輯文件中當前光標所在行位置以及文件狀態信息
G
- nG 跳转到第n行
- G 同
]]
跳转到行未 ([[
跳转到行首) - gg 同
[[
/
和?
-
/
向下搜索 -
?
向上搜索 - n 下一处
- N 上一处(不管是使用
/
还是?
,在使用N
进行跳转的时候方向会自动调转)
%
- 匹配最近的
{
}
[
]
(
)
(距其右边最近的符号开始)
:%s/old/new/g
摘自vimtutor
- :[范围]s/old_string/new_strin/[flags]
- 范围
- 空:当前行
- %:全文
- n1,n2: 第n1行到第n2行范围内
- flags
- g: 全行
- c: 询问
- 范围
例子:
- :s/old/new/c 将第一个匹配到的
old
替换成new
,并让用户再次确认 - :s/old/new/ 将第一个匹配到的
old
替换成new
- :s/old/new/g 全行将
old
替换成new
- :%s/old/new/ 全文将每行的第一个
old
替换成new
- :%s/old/new/g 全文将
old
替换成new
- :#,#s/old/new/g #,#代表两个行号,在这个范围内将
old
替换成new
:!
- :! + shell
O/o/I/i/A/a
- O 在当前行之上添加一行,并进行插入模式
- o 在当前行之下添加一行,并进行插入模式
- I 在行首(第一个非空字符前)进入插入模式
- i 在光标前进入插入模式
- A 在行末进入插入模式
- a 在光标后进入插入模式
:w
- :w path/file_name 当前内容保存到path/file_name
- :n1,n2 w path/file_name 将第n1行(包含)到第n2行(包含)的内容写到path/file_name中
:r
:r ~/Desktop/test 将test中的内容读到当前位置
* 星号
跳转到下一个和当前光标一样的单词位置
da]
该命令会为三部分:
- d 删除, 同埋可以替换成c/r等
- a 选择某一区域
- ] 选择[]范围内的区域
扩展:
- a 包含空格或者区域标识的范围,如上面的[]
- i 与 a 类似,但不包含空格或者[]
- [] / {} / ()
- w 单词
- W 字符串
- s 句子
- p 段落
大写D/C/S
- D 删除从光标处删除到行尾
- C 删除从光标处删除到行尾,并进入插入模式
- S 删除当前行,并进入插入模式
CTRL+Z 与 fg
- CTRL + z 可以将vim转移到后台
- fg + Enter 可以恢复vim
版权声明:本文为本人原创文章,未经作者允许不得转载。
网友评论