Vim 小知识

Vim 文编编辑器

说明:Vim 是 Vi 的增强版,Ubuntu 默认安装了 Vi ,没有安装 Vim,但使用几乎一样。以下使用 Vim来介绍,最好使用 Vim,因为 Vi 有点难用

Vim 常用操作

vim 介绍

  1. vim 是一个功能强大的全屏幕文本编辑器
  2. 作用:建立、编辑、显示文本文件
  3. vim 没有菜单,只有命令
  4. vim 工作模式
    • 进入 vi filename ,已有文件,则进入文件命令模式;没有,则创建文件,再进入文件命令模式
    • 命令模式,
      1. 插入模式:使用 i\a\o 进入插入模式;使用 esc 回到命令模式
        • i 光标前插入
        • a 光标后插入
        • o 换行插入
      2. 编辑模式:命令以回车结束\运行
    • 退出 ,命令模式下输入命令 wq 退出并保存;q! 强制退出(如果:文件使用 vi filename 创建,退出没有保存,则文件也不会存在);w 保存文件

插入命令

  1. 在命令模式下输入插入命令

    • 如表

      命令 作用
      a 光标后插入
      A 光标所在行末尾插入
      i 光标前插入
      I 光标所在行首插入
      o 光标下出入新行
      O 光标上出入新行

定位命令

  1. 在命令模式下输入

    • 如表

      命令 作用
      :set number / set nu 设置行号
      :set nonumber / set nonu 取消行号
      G / gg 到最后一行 / 到第一行
      nG 到第几行
      :n 到第几行
      $ 移至行尾
      0 移至行首

删除命令

  1. 在命令模式下输入

    • 如表

      命令 作用
      x 删除光标所在处字符
      nx 删除光标所在处后 n 个字符
      dd 删除光标所在行,ndd 删除 n 行
      dG 删除光标所在行及到文件末尾内容
      D 删除光标所在处到行尾内容
      :n_1,n_2d 删除指定范围的行

复制和剪切命令

  1. 在命令模式下输入

    • 如表

      命令 作用
      yy 复制当前行
      nyy 复制当前行一下的 n 行
      dd 剪切当前行
      ndd 剪切当前行一下 n 行
      p / P 粘贴在当前光标行所在行下或行上

替换和取消命令

  1. 在命令模式输入

    • 如表

      命令 作用
      r 取代光标所在字符
      R 从光标所在处开始替换字符,按 esc 结束
      u 取消上一步操作

搜索和搜索替换命令

  1. 在命令模式下输入

    • 如表

      命令 作用
      /string 搜索指定字符串
      搜索时忽略大小写 :set ic
      键入 n 表示查看下一个搜索结果
      :%s/old/new/g 全文替换指定字符串(old)
      注意转义字符 \/ 表示 /
      :n_1,n_2s/old/new/g 在 n_1 到 n_2 行内替换
      注意转义字符 \/ 表示 /

保存和退出命令

  1. 在命令模式下输入

    • 表格

      命令 作用
      :w 保存修改
      :w new_filename 另存为指定文件
      :wq 保存修改并退出
      ZZ 快捷键,保存修改并退出
      :q! 不保存修改退出
      :wq! 保存修改并退出(文件所有者及 root 可使用)

Vim 使用技巧

说明:一下设置可以写入用户目录下的 .vimrc 文件写入配置信息,使用 vim 设置永久有效

导入命令执行结果 :r !命令

  1. 介绍
    • 将命令执行的结果写入,使用 vim 编辑器打开的文件
  2. 实例
    • 使用 cat 文件1 ,将 文件1导入 vim 打开的文件中
      1. r !cat 文件1
      2. 直接使用文件名 :r !文件1 ,也可以导入文件1内容
    • 导入当前时间 date
      1. r !date

在 vim 中查看命令执行结果 :!命令

  1. 介绍

    • 不需要退出 vim 编辑器,直接使用 :!命令 查看执行结果
  2. 实例

    • 在 vim 编辑器下,使用 :!ls

      ss@localcomputer:~/桌面/test$ vim a
      
      a  abc
      
      请按 ENTER 或其它命令继续
      

定义快捷键 :map 快捷键 触发命令

  1. 介绍
    • 将一个或多个命令,使用一个快捷方式代替
  2. 实例
    • 使用自定义快捷键注释代码
      1. 加注释::map ctrl+y I#<ESC> 使用 ctrl+y 代替行首插入 I ,插入 #,按 ESC 键退出插入模式
      2. 解除::map ctrl+t 0x<ESC> 使用 ctrl+t 代替光标移至行首,使用 x 删除光标所在处 #,按 ESC 键退出插入模式
    • 可是使用快捷键,输入邮箱等一些常用信息
      1. 插入邮箱::map ctrl+y iShenDeZ@163.com 使用 ctrl+y 代替进入插入模式,插入邮箱地址

连续注释

  1. 介绍
    • 就是多行一起注释,会使用正则表达式
  2. 实例
    • 以 # 为注释符的多行注释
      1. :n_1,n_2s/^/#/g
      2. 相反 :n_1,n_2s/^#//g
    • 以 // 为注释符的多行注释
      1. :n_1,n_2s/^/\/\//
      2. 相反 :n_1,n_2s/^\/\///g\ 是转义字符
    • 在行尾插入相同字符
      1. 在行尾插入 hello::%s/$/hello/g

替换 ab 替代 原字符集

  1. 介绍
    • 将一段常用字符集,使用简单的几个字符代替
    • vim 插入时,空格 / 回车,会有显示
  2. 实例
    • 邮箱使用特殊字符代替
      1. :ab mail ShenDeZ@163.com ,vim 插入 mail 时,会自动转变成 ShenDeZ@163.com

分屏

打开文件并且分屏

  1. 垂直分屏
    • 命令 vim -o[n] file1 [file2……]
      1. n 表示分屏个数(可以省略)
      2. file 表示文件
    • 一般使用 vim -o file1 file2 垂直创建或打开两个文件
    • 如果写 n,但 n 与文件数相等,会创建无名文件
  2. 水平分屏
    • 命令 vim -O[n] file1 [file2……]

Vim命令模式下分屏

说明:也可以新建文件

  1. 垂直分屏
    • 命令 :split [file1]
      1. 写 file,将 file 与当前文件垂直分屏
      2. 不写 file,将当前文件垂直分开,同时分屏的文件同步
    • 命令 :vs [file1]
      1. 只读,可还行
  2. 水平分屏
    • 命令 :vsplit [file1]
    • 命令 :vs [file1]
  3. 新建文件垂直分屏
    • 命令 :new [file1]
      1. 写 file 会新建一个文件
      2. 不写 file 会新建一个无名文件

移动光标

  1. 将光标移动到另一个屏幕中

    • 如表格

      光标方向 命令
      上移 ctrl+w k
      下移 ctrl+w j
      左移 ctrl+w h
      右移 ctrl+w l
      移动到下一个 ctrl+w w
      移动上一个 ctrl+w p

关闭分屏

说明:此处使用的命令是在文件名由修改的情况下使用

  1. 关闭除当期分屏的所有分屏
    • 命令 :only
      1. 分屏有修改不可关闭
  2. 关闭所有分屏
    • 命令 :qa
      1. 同样分屏有修改不可关闭

设置 vim 分屏

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

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,352评论 0 5
  • Vim几句话介绍Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也...
    何必遠方阅读 3,116评论 0 3
  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 1,341评论 0 2
  • 自我总结篇: 对文件的操作技巧: vim文件一个有三种状态:命令(浏览/输入命令转变末行模式),文本(添加/编辑/...
    小知大知阅读 787评论 0 0
  • 今天我下了简书,这是我第一篇作品。 今天我重读了一段天蓝色的彼岸,感觉很感人,文中的男孩在生前和姐姐赌气,然后要离...
    杨学彬阅读 119评论 3 1