vim【宏、替换、全局模式、Visual Block模式、读写文件】

    1. 命令的记录和回放
      1. 操作步骤:
        1. q{register}命令:将后续的动作记录到名为{register}的寄存器中,其中给出的寄存器名字必须是az之间的一个字母。
        1. 执行你要执行的操作,按下q以结束对命令的记录。
        1. @{register}命令:执行刚刚记录下来的宏。
      1. 例子:
        1. qa:开始将后续的命令记入到寄存器a中。
        1. 将光标移动到行首。
        1. i#include "<Esc>,在该行之前插入#include
        1. $将光标移动到行尾。
        1. a.h"<Esc>:在行尾加上.h"字符。
        1. j:移动到下一行。
        1. q:停止记录。
        1. @a:执行记录的宏,可以加计数命令。
        1. @@:重复上一次宏的命令。
      1. 编辑宏的内容
        1. "ap命令:显示宏的内容。
        1. "ad$命令:将编辑好的宏的内容再一次的放入到寄存器中。
        1. qA命令:向寄存器a中追加内容。
    1. 替换
      1. 通用形式
      • :[range]submitute/from/to/[flags]:对一个指定的范围执行替换操作,range指范围,from被替换的内容,与搜索命令所用的正则表达式类似,to替换为的内容,flags指一些常用的标记。
        • 如::s/the /these /g,g是global的意思。
        • 如: :s/one\two/one or two/g
      1. 常用选项
      • range:作用范围,range=%范围为所有行,而缺省只作用于当前行。
      • flags:标记,flags=g(global)将改变一行所有符合目标字符串的全部字符进行替换。flags=c:在执行每个替换前请求用户确认confirm
        • y:好吧,yes。
        • n:不,no。
        • a:全部,all。
        • q:退出,quit。
        • l:把现在这个修改结束后进行退出。
        • CTRL-E:向上滚屏一行。
        • CTRL-Y:向下滚屏一行。
    1. 命令的作用范围
    • :1,5s/this/that/g:对第1行到第5行的文本执行替换操作。
    • :3s/this/that/g:对指定行进行替换操作。
    • :.,$s/this/that/g:当前行到最后一行范围,如:$=1,$
    • :?^Chapter?,/^Chapter/s=this=that=g:使用搜索模式来指定作用范围。
    • :?^Chapter?+1,/^Chapter/-1s=this=that=g:增与减行的范围操作。
    • .+3,$-5s/this/that/g:将当前行的下三行到倒数第6行的作用操作。
    • 't,'bs/this/that/g:使用标记确定操作范围。
    • '<,'>s/this/that/g:Visual模式确定的范围。
    • '>,$:从上一次VIsual模式时选定的文本区域的结束处到文本末尾的这样的区域。
    • .,.+4.当前行到,+4从当前行到向下4行。
    1. 全局命令
    • :[range]global/{pattern}/{command}:找到符合某个匹配模式的行,然后将命令作用于这些行上,全局命令的默认作用范围是整个文件。
    • :g=//=s/foobar/barfoo/g:整个文件中包含//的行,进行替换操作。
    • :g=//=d:整个文件中包含//的行,进行删除操作。
    1. Visual Block模式
      1. 插入文本
      • Insert<Esc>:在文本块的每行的行首,进行插入文本。
      • Astring<Esc>:在文本块的每行的行尾,进行插入文本。
      1. 改变文本
      • cstring<Esc>:修改文本块的文本,仅仅会修改文本块的内容。
      • Cstring<Esc>:修改文本块的文本,会删除文本块尾部的内容。
      1. 改变文本的大小写
      • ~:交换大小写。
      • U:将小写变大写。
      • u:将大写变小写。
      1. 填充命令
      • rx:以字符x进行文本块的填充操作。
      1. 左右移动
      • <命令:会使你的文本向左移动一个shift单位。
      • >命令:会使你的文本向右移动一个shift单位。
      • :set shiftwidth=4:设置一个shift单位的宽度。
      1. 将多行内容粘贴起来
      • J命令:使文本块纵跨的所有文本被连接为一行。
      • gJ命令:如果你想要保留那些前导空白和后缀的空白时,可以使用。
    1. 读写文件
      1. 读取文件
      • :read fileName:读入文件的内容放在当前行。
      • $read fileName:追加到文件的最后。
      • 0read fileName:把文件放在第一行的上面。
      • 60read fileName:那文件放在指定行的上面。
      1. 写入文件
      • :write fileName:没有指定一个范围时该命令将写入整个文件的内容。
      • :.,$write fileName:当前行到文件尾的内容写入文件,如果文件存在则失败。
      • :.,$write! fileName:强制当前行到文件尾的内容写入文件,会进入覆盖模式。
      • :.write fileName:将当前行写入文件中。
      • :.write >> fileName:将当前行的内容追加到文件中。
      1. 格式化文本
      • :set textwidth: 查看键入文字的时候每行的内容能自动调节到适应当前设置的宽度,每一行都会自动调整到只包含最多几个字符,Vim进行格式化文本的时候不会打断你的单词。
      • :set textwidth=100: 设置键入文字的时候每行的内容能自动调节到适应当前设置的宽度,每一行都会自动调整到只包含最多100个字符,Vim进行格式化文本的时候不会打断你的单词。
      • :gqapgq为Vim的一个格式化操作符号,ap是一个文本对象,即:a paragraph。
      • gg gqG:格式化整个文件的内容。
      • gqgq:格式化当前行,可以与.重复命令一起使用。
      • gqj:格式化当前行和它下面的一行。
      1. 改变大小写
      • guw命令:gu是变小写的操作符,w是位移。
      • gUw命令:gU是变大写的操作,w是位移。
      • g~w命令:将字母的大小写进行反转,大写变小写,小写变大写。
      • gugu命令:使一整行变为小写,简写为guu,同理gUgUgUUg~g~g~~
      1. 使用外部程序
      • sort < input.txt > output.txt
      • !5G!过滤操作符,5G为移动命令,决定了将哪个区域送到过滤程序中。
      • !!date!!命令为过滤当前行,date命令显示当前时间。
      • write !wc:将文本写入一个命令wc中,wc命令是统计行数,单词数,字符数。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,380评论 0 5
  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 1,375评论 0 2
  • [TOC] ##Assoc 显示或修改文件扩展名关联 Assoc [.Ext[=[Filetype]]] .Ex...
    btijjj阅读 337评论 0 1
  • vi(vim)可以说是linux中用得最多的工具了,不管你配置服务也好,写脚本也好,总会用到它。但是,vim作为一...
    梁世勇阅读 1,573评论 2 12
  • 看完市场营销1-4班所有的搜索和投放渠道作业,有很多优秀的作业,为此,每个班保留了7-10个,大多投放渠道为知名的...
    Lcc_cecf阅读 140评论 0 0