vi是linux下最常用的编辑器,vim是vi的加强版,本篇将介绍vim的一些快捷键和使用技巧,借鉴网上其他文章表示🙏
四种模式
可视模式(visual-mode) v V进入 可视模式相当于高亮选取文本后的普通模式。
正常模式(normal-mode) Esc返回正常模式
命令模式(command-mode) : 进入命令模式
插入模式(insert-mode)
i 在光标所在字符前开始输入
a 在光标所在字符后开始输入
o (字母o) 在光标所在行的下面新行来输入
s 删除光标所在的字符并进入插入模式
I 在行首开始输入
A 在行尾开始输入
O 在光标所在行的上面单独开一新行来输入
S 删除光标所在行输入
移动光标
单词 w 移动光标到下一个单词开头 e 移动光标到下一个单词结尾 b 移动光标到上一个单词
行 0 移动光标到本行最开头 ^ 移动光标到本行最开头的字符处 $ 移动光标到本行结尾处 A 移动光标至行尾并直接编辑
屏 H 移动光标到屏幕的首行 M 移动光标到屏幕的中间一行 L 移动光标到屏幕的尾行
文档 gg 移动光标到文档首行 G 移动光标到文档尾行 :n 或者nG 跳至第n行 n 向下移动n行
{ 转到上一个空行 } 转到下一个空行
5fx 查找光标后第 5 个 x 字符.
5w(e) 移动光标到下五个单词的头部(尾部).
翻页
ctrl + f 向下翻页 同 page down.
ctrl + b 向上翻页 同 page up.
ctrl + d 向下翻半页 此比较有用
ctrl + u 向上翻半页 此比较有用
ctrl + e 向下翻一行
ctrl + y 向上一行
查找
/string(?string) 向下向上查找 n(N)向下向上查找下一个 :set ignorecase 忽略大小写
*(#) 查找光标处单词
g*(g#) 匹配包含该单词的所有字符串
gd 查找光标处单词,光标移动到第一个查找结果
% 查找匹配的反括号, 包括 () [] { }
f(F)x 查找光标所在行右(左)方第一个x字符 ; 表示继续往下找 , 表示反方向查找
替换
:s/aa/bb/g 光标所在行 aa 的替换为 bb
:s/\<aa\>/bb/g 光标所在行出现的所有aa单词替换为 bb
:%s/aa/bb/g 文档 aa替换为 bb
:2,23s/aa/bb/g 2-23行中aa替换为 bb
:2,23s/^/#/ 2-23行的行首加入 # 字符
u 撤销 ctrl+r反向撤销 ctrl+o后退 ctrl+i 前进
拷贝, 删除与粘贴
vi 中 y 表示拷贝, d 表示删除, p 表示粘贴.
单词
yw 拷贝光标到光标所在单词结尾
dw 删除光标到光标所在单词结尾
daw 删除光标所在的单词
行
y0 拷贝光标到光标所在行首
d0 删除光标到光标所在行首
y$ 拷贝光标到光标所在行尾
d$ 删除 光标到光标所在行尾
yy 拷贝光标所在行 5yy 拷贝光标以下 5 行.
dd 删除光标所在行 5dd 删除光标以下 5 行.
D 删除光标到光标所在行尾
ddp 光标所在行与下一行交换
J 光标所在行与下一行合并
:10,24y(d) 拷贝(删除)第10行到第24行
:10,y(d) 拷贝(删除)第10行到光标所在行
:,24y(d) 拷贝(删除)光标所在行到第24行
编辑快捷键
编辑模式下
ctrl+p(ctrl + n) 向上(下)搜索开头与其匹配的单词并补齐
ctrl + x + l 整行补齐, 仅在本窗口中出现的文档中进行匹配.
ctrl + x + f 在编辑模式中, 这个命令表示补齐文件名. 如输入:
/usr/local/va 后再输入此命令则它会自动匹配出:
/usr/local/var/
abbr 缩写,用一个缩写代替另一个字符串.
比如编写java文件的常常输入 System.out.println, 可以设置缩写 :abbr sprt System.out.println, 在进入编辑模式输入sprt就会自动扩展为System.out.println
多文件编辑
vi file1 file2 file3 ... 一个 vim 程序中可以打开很多文件进行编辑
:n就可以进入下一个文件的编辑,
:N就进入上一个文件进行编辑
:e 文件名 指定编辑一个文件则用
:ls 或者 :files 由vi列出文件名
会显示出如下数据:
1 %a "vim.html" 行 102
2 # "test.html" 行 0
TAB 制表符
<< 左移 tab
>> 右移 tab
5>> 右移5个 tab
:12,24> 12-14行右移 tab
:12,24>> 12-14行右移2个 tab
文件跳转与tags
文件跳转要使用tags文件,生成方式为 ctags -R *, ctags为外部命令。
使用方法:
(1)把光标移到变量名或函数上,按
ctrl+ ] 跳转到变量或函数定义的地方,按
ctrl+ t 返回到原文件
可以多次跳转和多次返回
(2)在vi中:ta[:tag]可以直接跳转到变量或函数定义的地方
(3)vi -t 变量或函数名,直接打开变量或函数定义的文件
来源:https://www.cnblogs.com/hellohell/p/8191839.html