Vim 编辑器常用命令

(一)Vim模式

  • vim的三种工作模式:命令模式(Command Mode) 、输入模式(Input Mode)、末行模式(Last line Mode)
  • 切换的方法:
  • 命令模式下输入 a、i、o进入输入模式
  • 输入模式下按 Esc 进入命令模式
  • 命令模式下输入 : 进入末行模式
  • 末行模式下指令错误则返回命令模式
  • 简写记忆:
    • 输入-->命令:Esc
    • 命令-->输入:a i o A I O
  • 以下所有命令都是在命令模式

(二)常用Vim命令

  • 这个图涵盖了常用的Vim命令
  • 插入文本

    • I —— 在当前行第一个非空字符前插入
    • gI —— 在当前行第一列插入
    • a —— 在光标后插入
    • A —— 在当前行最后插入
    • o —— 在下面新建一行插入
    • O —— 在上面新建一行插入
  • 文档操作

  • :w —— 保存修改

  • :wq —— 保存并退出

  • ZZ —— 保存并退出

  • :x —— 保存并退出

  • :q[uit] —— 退出当前窗口

  • 删除

  • x —— 删除光标所在位置的一个字符

  • nx —— 删除光标所在位置的后面n个字符

  • dw —— 向后删除一个单词

  • db —— 向前删除一个单词

  • dd —— 删除光标所在行

  • ndd —— 删除从光标所在行开始的n行

  • 移动

  • 0 —— 移动到行首

  • g0 —— 移到光标所在屏幕行行首

  • $ —— 移动到行尾

  • g$ —— 移动光标所在屏幕行行尾

  • ^ —— 移动到本行第一个非空白字符

  • g^ —— 同 ^ ,但是移动到当前屏幕行第一个非空字符处

  • n| —— 把光标移到第n列上

  • nG —— 到特定的行数(n)

  • :n —— 移动到第n行

  • n+ —— 移至游标所在位置之后的第 n 列

  • n- —— 移至游标所在位置之前的第 n 列

  • :$ —— 移动到最后一行

  • gg —— 到文件头部

  • G —— 到文件尾部

  • f/F+字符 —— 向前/向后移动到特定的字符

  • ( —— 前移1句

  • ) —— 后移1句

  • { —— 前移1段

  • } —— 后移1段

  • j —— 下移一行

  • k —— 上移一行

  • gj —— 移动到一段内的下一行

  • gk —— 移动到一段内的上一行

  • +或Enter —— 把光标移至下一行第一个非空白字符
    上面的操作都可以配合n使用,比如输入3h, 则光标向左移动3个字符

  • 复制

  • yw —— 复制单词

  • yf —— 复制当前字符到指定字符

  • yy或Y —— 复制当前行

  • nyy —— 复制当前行开始的n行

  • y[n]w —— 复制1(n)个词

  • y$ —— 从光标当前位置复制到行尾

  • y0 —— 从光标当前位置复制到行首

  • 剪切

  • d —— 删除(剪切)在可视模式下选中的文本

  • d$ or D —— 删除(剪切)当前位置到行尾的内容

  • d[n]w —— 删除(剪切)1(n)个单词

  • d0 —— 删除(剪切)当前位置到行首的内容

  • [n] dd —— 删除(剪切)1(n)行

  • 粘贴

  • p —— 在光标之后粘贴

  • P —— 在光标之前粘贴

(三)不常用Vim命令

  • 插入文本

    • :r filename —— 在当前位置插入另一个文件的内容
    • :[n]r filename —— 在第n行插入另一个文件的内容
    • :r !date —— 在光标处插入当前日期与时间(同理:r !command可以将其它shell命令的输出插入当前文档)
  • 文档操作

  • :e file —— 关闭当前编辑的文件,并开启新的文件,如果对当前文件的修改未保存,vi会警告

  • :e! file —— 放弃对当前文件的修改,编辑新的文件

  • :e+file —— 开始新的文件,并从文件尾开始编辑

  • :e+n file —— 开始新的文件,并从第n行开始编辑

  • :enew ——编译一个未命名的新文档

  • :e —— 重新加载当前文档

  • :e! —— 重新加载当前文档,并丢弃已做的改动

  • :e#或ctrl+^ —— 回到刚才编辑的文件,很实用

  • :f或ctrl+g —— 显示文档名,是否修改,和光标位置

  • :f filename —— 改变编辑的文件名,这时再保存相当于另存为

  • gf —— 打开以光标所在字符串为文件名的文件

  • :n1,n2w filename —— 选择性保存从某n1行到另n2行的内容

  • 删除

    • x —— 删除游标所在该字元
    • X —— 删除游标所在之前的字元
    • r —— 输入新字元取代(replace)游标所在字元(如:ra将游标所在字元以 a 取代)
    • R —— 进入取代状态,直到Esc为止
    • s —— 删除游标所在之字元,并进入输入模式,直到Esc
    • S —— 删除游标所在的一行,并进入输入模式,直到Esc
  • 移动

  • b —— 移动到上个字的第一个字母

  • w —— 移动到下个字的第一个字母

  • e —— 移动到下个字的最后一个字母

  • B —— 移动到上一个单词开头,忽略一些标点

  • W —— 移动下一个单词开头,但忽略一些标点

  • E —— 移动到下一个单词末尾,如果词尾有标点,则移动到标点

  • H —— 移至视窗的第一行

  • M —— 移至视窗的中间那行

  • L —— 移至视窗的最后一行

  • G —— 移至该文件的最后一行

  • + —— 移至下一列的第一个字元处

  • - —— 移至上一列的第一个字元处

  • ctrl+b —— 屏幕后移动一页

  • ctrl+f —— 屏幕向前移动一页

  • h或退格 —— 左移一个字符

  • l或空格 —— 右移一个字符

  • ge —— 后移一个单词,光标停在上一个单词末尾

  • gE —— 同 ge ,不过‘单词’包含单词相邻的标点

  • tc —— 把光标移到同一行的下一个c字符前

  • Tc —— 把光标移到同一行的上一个c字符后

  • 复制

  • y[n]l —— 复制光标右边1(n)个字符

  • y[n]h —— 复制光标左边1(n)个字符

  • :m,ny —— 复制m行到n行的内容

  • y1G或ygg —— 复制光标以上的所有行

  • yG —— 复制光标以下的所有行

  • 剪切

  • d[n]l —— 删除(剪切)光标右边1(n)个字符

  • d[n]h —— 删除(剪切)光标左边1(n)个字符

  • :m,nd —— 剪切m行到n行的内容

  • d1G或dgg —— 剪切光标以上的所有行

  • dG —— 剪切光标以下的所有行

  • d/f —— 这是一个比较高级的组合命令,它将删除当前位置到下一个f之间的内容

  • 滚屏

  • ctrl-u —— 文本向下滚到半屏。光标不随文本移动。相当于文本的窗口上移半屏

  • ctrl-d —— 窗口向下移动半屏,相当于文本向上滚动了半屏

  • ctrl-e —— 向上滚动一行

  • ctrl-y —— 向下滚动一行

  • ctrl-f —— 向前滚动一屏(forward)

  • ctrl-b —— 向后滚动一屏(backward)

  • zt —— 把当前行置于屏幕顶端

  • zb —— 把当前行置于屏幕底

  • zz —— 把当前行置于屏幕中央

  • 标记

  • m{a-z} —— 标记光标所在位置,局部标记,只用于当前文件

  • m{A-Z} —— 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效

  • {a-z} —— 移动到标记位置

  • '{a-z} —— 移动到标记行的行首

  • {0-9} —— 回到上[2-10]次关闭vim时最后离开的位置

  • `` —— 移动到上次编辑的位置。''也可以,不过``精确到列,而''精确到行 。如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i

  • ``"` —— 移动到上次离开的地方

  • ``.` —— 移动到最后改动的地方

  • :marks —— 显示所有标记

  • :delmarks a b —— 删除标记a和b

  • :delmarks a-c —— 删除标记a、b和c

  • :delmarks a c-f —— 删除标记a、c、d、e、f

  • :delmarks! —— 删除当前缓冲区的所有标记
    **使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退 和 前进 **

  • 查找

    • /something —— 在后面的文本中查找something
    • ?something —— 在前面的文本中查找something
    • /pattern/+number —— 将光标停在包含pattern的行后面第number行上
    • /pattern/-number —— 将光标停在包含pattern的行前面第number行上
    • n —— 向后查找下一个
    • N —— 向前查找下一个
  • 替换

    • :s/old/new —— 用new替换当前行第一个old
    • :s/old/new/g —— 用new替换当前行所有的old
    • :n1,n2s/old/new/g —— 用new替换文件n1行到n2行所有的old
    • :%s/old/new/g —— 用new替换文件中所有的old
    • :%s/^/xxx/g —— 在每一行的行首插入xxx,^表示行首
    • :%s/$/xxx/g —— 在每一行的行尾插入xxx,$表示行尾
  • 分屏编辑

  • vim -o file1 file2—— 水平分割窗口,同时打开file1和file2

  • vim -O file1 file2—— 垂直分割窗口,同时打开file1和file2

  • 排版

    • << —— 向左缩进一个宽度
    • >> —— 向右缩进一个宽度
    • :ce(nter) —— 本行文字居中
    • :le(ft) —— 本行文字靠左
    • :ri(ght) —— 本行文字靠右
  • 拼写检查

  • :set spell—— 开启拼写检查功能

  • :set nospell——关闭拼写检查功能

  • ]s—— 移到下一个拼写错误的单词

  • [s——作用与上一命令类似,但它是从相反方向进行搜索

  • z=—— 显示一个有关拼写错误单词的列表,可从中选择

  • zg—— 告诉拼写检查器该单词是拼写正确的

  • zw—— 与上一命令相反,告诉拼写检查器该单词是拼写错误的

参考文章推荐
Vim 常用命令大全
Linux基础命令和Vim常用命令

不定期完善中...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容