vim是一个文本编辑神器, 长时间没用生疏了,这篇文章整理了一下vim常用操作和快捷键
注释:
[] 表示括号内容可有可无
() 表示括号内容可以跟前面一个字符替换
一、vim的几种模式
普通模式
1)光标移动
hjkl 表示 左下上右(最基础)
行内
w(b) 移动到下(上)一单词首字母 [g]e 移动到[上]下一单词尾字母 0(^) 移动到行首(非空字符) $(g_) 移动到行尾(非空字符) n| 移动到当前行第n列 f(F)w: 移动到下(上)一个w出现的地方 t(T)w: 移动到下(上)一个w出现地方的前(后)一个字符 |
行间
G 跳转到最后一行 gg: 跳转到第一行 nG(gg) 或:n 跳转到第n行行首(非空字符) {(}) 跳转到段首(尾) +(-) 移动到下(上)一行行首 |
翻页
ctrl+b 向下翻页 ctrl+f 向上翻页 |
查找
/word 查找word 第一个位置 n(N) 查找下(上)一个 *(#) 向下(上)查找光标处的单词 |
2)删除
[n]x(X): 删除光标(前)n个字符
d: 删除
[n]dd: 删除光标所在行向下共n行 d[1]G: 删除光标所在行到[第一行]最后一行 d$(0): 删除光标到行尾(行首) D: 删除到行尾 dw: 删除光标到单词结束 d[n]a(i)w: 删除光标所在的n个单词,(不)包括单词后的空格 d[n]j(k): 删除当前行及向下(上)n行;jk 也可替换成hl, 表示向左向右n个字符 d{(}): 删除到段落开头(末尾) |
3) 复制
y(Y) 用法同删除d
4) 粘贴
p(P): 在光标后(前)插入粘贴板内容
插入模式
普通模式键入以后字符自动变为插入模式
i(a): 光标所在字符前(后)插入 s(S): 删除字符(此行)并插入,相当于cl(c) -- 以下操作还是普通模式 x(X): 删除光标处(左边)字符,相当于dl(h) |
命令行模式
普通模式键入 : 进入命令行模式
命令行模式按键 esc 退出
set (no)nu : (不)显示行号 wq: 保存退出 q! 不保存退出 r!command 导入命令行输出(在当前文件中导入系统文本内容或者路径很有用,如 r!echo /usr/local/jdk_1.8) !command 执行shell命令 |
块模式(不常用)
v 配合移动命令移动
v(V): 配合 hjkl选中 ctrl+v: 选中列 |
二、小技巧
清除文本所有内容
命令行模式输入以下3中方式均可:
1,$d
ggdG
%d
特殊方式:
echo '' > a.txt
连续行注释(加#号)
第一种方法:
光标移动到需要注释开始行行首
ctrl+v 进入块模式
向下移动光标到添加注释的末尾航
键入 I
输入 #
按esc 退出
第二种方法:
键入: 进入命令行模式
2,5s/^/# / (意思为2到5行行首添加#)
g/^/2,5s/# /
第三种方法: (sed)
sed -i '2,5s/^/# /' filename
第四种方法:(宏)
光标移动到需要注释开始行
键入qa
键入I
键入 #
按键 esc 进入普通模式
键入q 退出宏录制模式
jV2j
命令行模式 :'<,'>normal @a
按键组合(提高效率)
diw/daw/ciw/caw 等等删除完整一个单词,w可替换为别的词()/}/)/]/>/'/"/`/t)
dt(w) : 从光标处删除到下一个w的位置
gu(U)[u/aw/j...] 转换为大小写
xp 调换前后字符
ddp 调换前后行
insert模式下:
ctrl+h :删除前一个字符(同退格键)
ctrl+w :删除前一个单词
ctrl+u :删至行首
注意:本文归作者所有,未经作者允许,不得转载