vim 增删改查

文本操作无非就是增、删、改、查。那vim怎么快速有效增、删、改、查呢?


这里  指的是从vim命令模式切换到输入模式的方法。( 通过 [Esc] 键切换到命令模式 )

如当前打开的文本如下:

[V]im is a highly configurable text editor for efficiently creating

and changing any kind of text.

( 方括号表示光标所在位置)

i    光标左侧输入

I    光标所在行的行首输入(等效组合键:0 + i

a    光标右侧输入

A    光标所在行的行尾输入(等效组合键:$ + a

o    在光标所在行的下一行增添新行,光标位于新行的行首

O    在光标所在行的上一行增添新行,光标位于新行的行首

那问题来了? 如果在光标所在行的下一行不添加新行,而是把光标移动到旧行的行首,怎么操作呢?这时需要组合键 j + I (光标移动到下一行的行首),同样 k + I (光标移动到上一行的行首)

小写 i 表示 insert,大写 I 可以记为小写的 i 的夸张动作,i 在光标左侧输入,I 则在光标所在行最左侧输入。小写 a 表示 append,大写 A 可以记为小写 a 的夸张动作,a 在光标右侧输入,A 则在光标所在行最右侧输入。

大写命令可以记为小写命令的夸张动作(如 a 和 A)或反向动作(如 o 和 O)

w + i    光标所在单词的下一个单词的词首输入(w 表示 word,向右移动一个word)

b + i    光标所在单词的上一个单词的词首输入 (b 是 w的反向动作backward,向左移动一个word)

e + a    光标所在单词的词尾输入 (e 表示 end,向右移动到词尾)


dd    删除光标所在行

ndd    n 是数字,删除光标所在行和向下 n 行

d0    删除光标所在处到所在行的行首

d$    删除光标所在处到所在行的行尾 (等效命令 D )

dG    删除当前行到末行之间的所有数据

d1G    删除当前行到首行之间的所有数据

dw,de    删除光标所在位置至词尾, 区别是光标删除后停留位置。dw光标停留在下一个单词的词首,de光标停留在向右数第一个空格


cc    删除光标所在行,并切换到输入模式

cw    删除光标位置至单词词尾,并切换到输入模式

C    删除光标位置至本行末尾,并切换到输入模式 (大写 C)

替换

:s/cerr/cout    把当前行第一次出现的 cerr 替换为 cout (s 表示 substitute 替换)

:s/cerr/cout/g    把当前行所有出现的 cerr 全部替换为 cout (g global全局)

:50,100s/cerr/cout/g    把第50行至100行的所有 cerr 替换为 cout

:1,$s/cerr/cout/g    整个文件中的 cerr 替换为cout (% 等价于 1,$。所以还可以写成:%s/cerr/cout/g

在替换命令尾部加上c (confirm 用于确认),在替换每一个old前都会提示并确认:

:%s/cerr/cout/gc 替换前提示?y表示替换,n表示放弃


字符查询

f + [字符]    在光标所在行向右搜索第一个相同字符

如vim内容如下;

[v]im is interesting  and fun.

(方括号表示光标所在位置)

在命令模式下输入 ft 光标移动至 t 字符

vim is in[t]eresting  and fun.

字符串查询

/pattern + [Enter]

pattern 为所有查询字符串,Enter键后被匹配字符串高亮显示,小写 n 查找下一个匹配项,大写 查找上一个匹配项

统计字符串出现次数

:%s/pattern//gn    

(% 表示 1,$

    s 表示 substitute 替换

    /pattern所要查询字符串

    // 替代文本应该放在这里,两个斜杠中间没有任何字符表示无替代文本

    g 全局内替换,没有这个参数,只在每行第一个匹配进行替换。Replace all occurences in the line. Without this argument, replacement occurs only for the first occurence in each line.

    n 计数,统计)

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

推荐阅读更多精彩内容