工善其事,必利其器。Linux 系统中常见的编辑技巧,vim 必不可少。
前言
工善其事,必利其器。Linux 系统中常见的编辑技巧,vim 必不可少。
Vim 是从vi
发展出来的一个文本编辑器
。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。Vim 的第一个版本由布莱姆·米勒在ADM-3A
终端上开发的,于 1991 年发布。
使用
本篇学习于慕课网DevOps24h
讲师的优雅玩转Vim
-课程
移动、跳转和缩进
光标移动
按键 效果 h/j/k/l 左/下/上/右 ^/0 移动到行首/包括缩进空格 $ 移动到行尾 单词和字符串移动
按键 效果 w/W 正向移动到下一个单词开头 b/B 反向移动到下一个单词开头 e/E 正向移动下一个单词行尾 ge 反向移动下一个单词行尾 跳转
按键 效果 Ctrl-f/F 下一页 Ctrl-b/B 上一页 Ctrl-d/u 向下/上翻半页 gg 跳转到首行 <:Line_Number>gg/G 跳转到指定行 {g} + Ctrl-g/G 跳转到最后一行 缩进
按键 效果 >> / :> 右缩进 m,n> / :m>(n-m+1) m 到 n 行缩进 m>n 等价于命令:m,m+n-1> m 行开始共 n 行缩进一次
删除、复制和粘贴
对比
window Vim 不同处 cut delete 和剪切相同,而不是直接删除 copy yank 等同于复制由于 c 用于修改(change)被迫选了 yank paste put 粘贴完全相同 基本操作
按键 效果 d = delete = cut 剪切 dd 剪切当前光标整行 y = yank ≈ copy 类似于复制 p/P = put ≈ paste 粘贴到光标后/光标前 u = undo 撤销之前操作 Ctrl-r = redo 重做/恢复之前操作 yw 复制当前光标单词 y2w 复制正向两个单词 yy 类似于 dd 复制当前光标整行 组合删除
按键 效果 x/X 删除光标下/前单个字符 dw(d=delete, w=word) 删除一单词(必须在词首) d{hjkl} 删除到左下上右一个操作前的字符 d$=D 删除光标到行尾的字符 d^ 删除光标到行首的字符 dd 删除当前整行 {n}dd 向下删除 n 行(包括当前行) 5dw 删除正向单词 5 次 3w 正向移动单词 3 次 D3w 正向删除 3w 动作 2d3w 正向删除 3w 动作 2 次
修改、查找和替换
插入
按键 效果 Shift+i/A 插入模式并移动到行首/行尾 a/i 光标后/前插入 {n}O/o 行前/行后插入 n 次 {n}+i 插入模式重复 n 次 转换
按键 效果 ~ 单个字符大小写转换 g ~ w 单词大小写转换 g ~ $ / g ~ ~ 整行大小写转换 gU/uw 单词转换成大/小写 查找
按键 效果 F/f{char} 反向/正向查找单个字符 t{char} 查找字符前一个字符 dt{char} / df{space} 删除光标到查找字符间字符 /{char} 命令行查找 替换
按键 效果 Shift + r/R 替换模式 r 单个字符替换 cw 修改单个单词 c$ / C 修改光标之后行内内容 s/going/rolling/g 当前行所有 going 替换成 rolling %s/going/rolling/g %匹配所有范围