vim【定制自己的vim、编辑多个文件】

7. 定制自己的vim

    1. vimrc文件
    • 如果你厌倦了手工键入常用命令,或者要使你喜好的选项和映射一次性准备好,这时可以统统写入到vimrc(vim run command)的文件里,Vim在启动的时会读取这个文件。

    • :read {filePath}命令:读取文件到当前vim编辑器里边。

    • :set filetype={fileNameSuffix}命令:设置当前vim窗口中文件的临时类型。

      // vimrc位置:
      1.Unix and OS/2: ~/.vimrc
      2. Windows: $VIM\_vimrc
      
      // 设置兼容性
      set nocompatible
      
      // 设置历史命令缓存数量
      set history=50
      
      // 设置鼠标支持
      set mouse=a
      
      // 打开语法高亮
      set syntax on
      
      // 设置高亮检索
      set hlsearch
      
      // 设置自动缩进
      set autoindent
      
      // 设置缩进宽度
      set shiftwidth=4
      
    1. 简单的映射
    • 一个映射可以把一连串vim命令用一个按键来表示。
    • 如:用一个功能键或者字符串,将某个word单词,变成{word},可以使用:map命令。
    • :map <F5> i{<Esc>ea}<Esc>
    1. 选项窗口
    • :options命令:在帮助主题中寻找或设置相应的选项。
    • set all命令:查看所有的设置选项
    1. 常用选项
    • :help {options}:查看某个选项的帮助。
    • set {options}&:{options}:修改为默认值。
    • set nowrap:不要折行。
    • set sidescroll=10:自动左右滚动10个字符。
    • set whichwrap=b,s,<,>,h,l,[,]:Normal和Insert模式下跨行移动命令。
    • set cmdheight=3:设置命令行高度为3。
    1. 使用高亮
    • syntax enable:打开语法支持。
    • syntax clear:关闭当前高亮。
    • colorscheme {themeName}:打开不同的颜色主题。

8. 编辑多个文件

    1. 编辑另一个文件
    • :edit {fileName}:编辑另一个文件。
    • :hide edit {fileName}:隐藏编辑另一个文件,不进行保存当前缓冲区的内容。
    • :edit! {fileName}:强制编辑另一个文件,不进行保存当前缓冲区的内容。
    1. 文件列表
      1. 打开多个文件
      • vim fileName1 fileName2 fileName3
      1. 文件列表,当前在编辑哪个文件
      • :args命令(arguments): 显示当前的文件列表,当前文件以[]括起来。
      1. 文件列表中的切换
      • :next命令:打开编辑下一个文件。
      • :next!命令:强制打开编辑下一个文件。
      • :wnext命令:完成两个单独的命令。即::write :next
      • :previous命令:打开编辑上一个文件。
      • :wprevious命令:保存当前文件,打开编辑上一个文件。
      • :last命令:打开最后一个文件,wlast命令。
      • :first命令:打开第一个文件,wfirst命令。
      • :2next命令:使用计数命令,向前跳过两个文件。
      1. 自动保存
      • :set autowrite:在不同的文件转移时,不需要每次都执行write命令。
      • :set noautowrite:关闭自动保存。
        • 备注:与word自动保存不同,过一段时间会自动保存,指某个事件发生时自动保存这个文件。
      1. 编辑另一个文件列表
      • args fileName1 fileName2 fileName:优点是不用重启Vim,就可以重新定义一个文件列表。
      • args *.{Filename Suffix}:支持通配符。
      1. 最后文件提醒
      • 当你有一个文件列表要编辑时,Vim会假设你要全部编辑它们,如果你要退出,就需要再执行一个退出命令。
    1. 切换到另一文件
      1. CTRL-^:两个文件之间快速的切换。
      • args fileName1 fileName2打开文件之后,再使用了:next或者previous之后,可以使用这个命令非常方便的在两个文件中进行切换。
      1. 多个文件之间的标记。
      • 全局标记:使用大写字母命名标记。
        • 如:args fileName1后使用m{markFlag},这个时候去别的文件之后可以使用'或者`跳转到自定义标记的位置。
        • 如果你删除了局部标记所在的行,也就相当于删除了这个局部标记。与全局标记不同,全局标记会一直存在下去。
      • 预定义标记
        • `'':关闭文件时的光标的位置。
        • `.:文件最后一次修改的地方。
        • 在多文件中也可以使用CTRL-iCTRL-o两个同样试用。
    1. 备份
    • :set backup:生成备份文件,文件名为原文件名加一个~
      • 备注:ZZ进行退出,是不能生成备份文件的,需要使用:write
    • :set backupext=.bak:修改生成一个名为原文件名加.bak的备份文件。
    • :set patchmode=.orig:保存一份修改前的原始文件作为副本,同时后缀名为.orig
    1. 在文件之间复制粘贴
      1. 简单的复制粘贴
      • :edit {fileName}打开你要找的文件,然后/{检索内容}搜索你要复制的内容,然后v进入可视模式选择你要复制的内容,然后y复制,然后:edit {fileName}回到你要粘贴的文件,之后/{检索内容}搜索你要粘贴的位置,最后p粘贴刚刚复制的文本。
      1. 使用寄存器
      • 复制多个独立的文本到另一个文件中时,这个时候可以使用寄存器,使用az的字母作为寄存器的名字。
        • 使用可视模式选择文本,然后"{寄存器名称},即:把一整块文本复制到寄存器中。
      • "fyas:把一个句子复制到名为f(first)的寄存器中。
      • "l3Y:把3个整行的内容复制到名为l(line)的寄存器中。
      • "bp:取出寄存器b中的内容文本。
      • wdaw:删除一个word并将其存入名为w(word)的寄存器中。
      1. 向文件中追加内容
      • :read {fileName}:向当前文件进行追加{fileName}文件内容。
      • :write >> {fileName}:将当前文件追加到文件名为{fileName}的文件中去,只能追加到文件的最后。
      • :write {newFileName}:将当前文件写入到名为{newFileName}新文件中去。
      • :'<,'> write >> {newFileName}:在Visual模式下也可以进行选择要写入的文本。
    1. 查看文件
    • vim {fileName}:直接打开编辑文件,可以读写。
    • vim -R {fileNmae}:以只读模式打开文件。
    • vim -M {fileNmae}:强制性的避免对文件进行修改,其中-M选项是告诉Vim工作于viewer模式中。
    • :set modifiable + :set write命令组合让viewer模式下的文件进行读写。
    1. 更改文件名
    • :write {filename}:将当前文件写入到新的文件中。
    • saveas {filename}:将当前文件进行另存为操作,且将新文件直接打开。
    • :file {filename}:与saveas功能相似,也可以实现文件名的更改。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容

  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 1,375评论 0 2
  • https://www.cnblogs.com/qiumingcheng/p/6275510.html ctrl ...
    shuff1e阅读 5,471评论 0 3
  • vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v 从...
    壹首簡單的歌阅读 881评论 0 7
  • 自我总结篇: 对文件的操作技巧: vim文件一个有三种状态:命令(浏览/输入命令转变末行模式),文本(添加/编辑/...
    小知大知阅读 796评论 0 0
  • 一朵莲花似巍然, 卷卷诗词诉心言。 手执素笔绘书卷, 文人墨客释清莲。 安享古琴抚忧怨, 犹唱红尘入梦魇。 品味人...
    前郭854刘景斌阅读 1,564评论 1 6