编辑器之神-VIM

【基础拾遗】编辑器之神-VIM



提交

我的留言

加载中



已留言

在这天地间,流传这两大神器的故事:据说Emacs是神的编辑器,而Vim是编辑器之神。正所谓,工欲善其事,必先利其器。今天就和大家分享一下关于编辑器之神Vim的传说。


一、Vim的历史

1.下图是关于几款主流编辑器的学习曲线:(注:图片来自互联网)

2.VIM - Vi IMproved

3.上图中vi即是vim的前身

  • VI:Visual Interface

4.VIM和VI是文本编辑器

  • 何为文本文件?

    • 文本文件一般指只有字符原生编码构成的二进制计算机文件,与富文本相比,其不包含字样样式的控制元素,能够被最简单的文本编辑器直接读取
  • 文本文件常见的格式?
    • ASCII、MIME、.txt、…
  • 那么,何为文本编辑器?
    • 文本编辑器是计算机软件中的一种。主要用于用来编写和查看文本文件。
  • 文本编辑器的种类:
    • 行编辑器:sed
    • 全屏编辑器:nano、vi、vim

二、Vim编辑器的基本操作

1. 基本操作

  1. VIM:模式化的编辑器
  2. 基本模式
    • 编辑模式 (命令模式)
    • 输入模式 (插入模式)
    • 末行模式 (vim内置的命令行接口)
    • Note:打开的时候默认的模式是编辑模式
  3. 打开文件
    • # vim [OPTION]... FILE...
    • +#:打开文件后,直接让光标处于第#行的行首
    • +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;
  4. 模式转换
  • 模式转换:

    • 编辑模式 - - > 输入模式

      • iinsert,在光标所在处前面插入;
      • aappend,在光标所在处的后面插入;
      • oopen,在当前光标所在行的下一行打开新行,并转换为输入模式;
      • I:在当前光标所在行的行首输入;
      • A:在当前光标所在行的行尾输入;
      • O:在光标所在行的上一行打开一个新行,并转换为输入模式;
    • 输入模式 - - > 编辑模式
      • ESC
    • 编辑模式 - - > 末行模式
    • 末行模式 - - > 编辑模式
      • ESC
    • 关闭文件
      • :q:退出
      • :!:强制退出,丢弃做出的修改;
      • :wq:保存退出;
      • :x:保存退出;
      • :w /PATH/TO/SOMEWHERE:当前编辑的文本保存到别的文件;
      • ZZ:保存退出;
  • 图示说明如下: (转载请注明出处)

2. 光标跳转:

  1. 字符间跳转:

    • h,j,k,l

      • h
      • l
      • k
      • j
    • #COMMAND:跳转由#指定的个数的字符;
  2. 单词间跳转:
    • w:跳转至下一个单词或后一个单词的词首
    • e:跳转至当前或下一个单词的词尾
    • b:跳转至当前或下一个单词的词首
    • #COMMAND:由#指定一次跳转的单词数;
  3. 行首行尾跳转:
    • ^:跳转至行首的第一个非空白字符;
    • 0:跳转至绝对的行首
    • $:跳转至绝对行尾
  4. 行间移动:
    • #G:跳转至由#指定行;
    • G:跳转至最后一行;
    • 1Ggg:跳转至第一行;
  5. 句间移动:
    • ):跳转至下一个句子;
    • (:跳转至上一个句子;
  6. 段落间移动:
    • }:跳转至下一段
    • {:跳转至上一段

3. vim的编辑命令:

  1. 字符编辑:

    • x:删除光标处的单个字符;
    • #x:删除光标处起始的#个字符;
    • xp:交换光标所在处的字符及其后面字符的位置;
  2. 替换命令:
    • rreplace
    • r:替换光标所在处的字符;(单字符替换)
  3. 删除命令:
    • d:删除命令,可结合光标跳转字符,实现范围删除;

      • d$:删除至绝对行尾
      • d^:删除至行首的第一个非空白字符
      • d0:删除至绝对行首
    • dd:删除光标所在行;
      • #dd:向下删除#行;
  4. 粘贴命令:
    • p,put,paste)
    • p:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的方;否则,则粘贴至当前光标所在处的面;
    • P:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的方;否则,则粘贴至当前光标所在处的面;
  5. 复制命令:
    • yyank
    • y:复制,工作行行为相似于d命令;
      • y$:复制至绝对行尾
      • y0:复制至绝对行首
      • y^:复制至行首的第一个非空白字符
      • yy:复制整行
        • #yy:复制多行;
  6. 改变命令:
    • cchange
    • c:修改
      • 编辑模式 - -> 输入模式
    • cc:删除并输入新内容
    • #cc:一次删除#行

三、其它编辑操作

1.可视化模式

  • v:按字符选定
  • V:按行选定
  • Note:经常结合编辑命令;

2. 撤销此前的编辑:

  • u(undo):撤销此前的操作;

    • #u:撤销指定次数的操作;
  • 撤销此前的撤销:
    • Ctrl+r
  • 重复前一个编辑操作:
    • .

四、翻屏操作

  • Ctrl+f:向文件尾部翻一屏;
  • Ctrl+b:向文件首部翻一屏;
  • Ctrl+d:向文件尾部翻半屏;
  • Ctrl+u:向文件首部翻半屏;
  • vim自带的练习教程
    • vimtutor

五、vim的末行模式

  • 内建的命令行接口
  • 特性
  • (1). 地址定界
    • :start_pos,end_pos
    • #:具体的第#行,例如:2表示第2行;
    • #,#:从左侧#表示起始,到右侧#表示结束;
    • #,+#:从左侧#表示的行开始,加上右侧#表示的行数;
    • .当前行;
    • $:最后一行;
    • %:全文;相当于(1,$)
    • /pat1/,/pat2/:表示从第一次被pat1匹配到的行开始,一直到pat2匹配到的行结束
    • 使用方式
      • 后跟一个编辑命令:

        • d:删除指定范围的内容
        • y:复制指定范围的内容
        • w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中;
        • r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容;
  • (2). 查找
    • /PATTERN:从当前光标所在处向文件尾部查找
    • ?PATTERN:从当前光标所在处向文件首部查找
      • n:与命令同方向;
      • N:与命令反方向;
  • (3). 查找并替换
    • s:在末行模式下完成查找替换操作

      • s/要查找的内容/替换为的内容/修饰符

        • 要查找的内容:可使用模式;
        • 替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;好可以使用"&"引用前面查找时查找到的整个内容;
        • 修饰符:
          • i:忽略大小写
          • g:全局替换;默认情况下,没一行只替换第一次出现的内容;
      • 查找替换中的分隔符/可替换为其它字符,例如:
        • [email protected]@@
        • s###

    六、vim的文件模式

1. 多文件模式
  • vim FILE1 FILE2 FILE3 …

    • :next 切换至下一个文本
    • :prev 切换至前一个文本
    • :first 切换至前一个文本
    • :last 切换至最后一个文本
    • :wall 保存所有
    • :qall 退出所有
2. 窗口分隔模式
  • vim -o|-O FILE1 FILE2 …

    • -o:水平分割
    • -O:垂直分割
    • 在窗口间切换Ctrl+w,Arrow
3. 单文件窗口分割:
  • Ctrl+w,s:split,水平分割
  • Ctrl+w,v:vertical,垂直分割
4. 定制vim的工作特性:
  • 配置文件:(永久有效)

    • 全局/etc/vimrc
    • 个人~/.vimrc   (默认不存在,需要自己创建)
  • 末行:(当前vim进程有效)
  • (1) 行号
    • 显示set number,简写为:set nu
    • 取消显示set nonumber,简写为:set nonu
  • (2) 括号匹配
    • 匹配set showmatch,简写为:set sm
    • 取消匹配set nosm
  • (3) 自动缩进
    • 开启set ai
    • 禁用set noai
  • (4) 高亮搜索
    • 开启set hlsearch
    • 禁用set nohlsearch
  • (5) 语法高亮
    • 开启syntax on
    • 禁用syntax off
  • (6) 忽略字符大小写
    • 启用set ic
    • 禁用set noic
5. 书籍推荐:《Vim-handbook-cn-72》
6. 获取帮助
  • 在末行模式下:help SUBJECT

精选留言

该文章作者已设置需关注才可以留言

写留言

该文章作者已设置需关注才可以留言

写留言

加载中

以上留言由公众号筛选后显示

了解留言功能详情



微信扫一扫
关注该公众号

来自为知笔记(Wiz)

时间: 2024-12-15 17:03:06

编辑器之神-VIM的相关文章

Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门

距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介绍一下我所了解的一点技术. 1.PostgreSQL的安装和使用 PostgreSQL是一个非常好用的开源免费数据库,功能强大,尤其对于GIS从业人员而言,其与PostGIS搭配可以有极强的空间数据库功能. 其官方网站:https://www.postgresql.org/ 官方帮助:https:/

Linux下的 编辑器之神——vim编辑器

编辑器之神--vim编辑器一.vi介绍Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,因此可以在其他任何介绍vi的地方都能进一步了解它,Vi也是Linux中最基本的文本编辑器,学会它后,我们将在Linux的世界里畅行无阻,尤其是在终端中. 关于vim:vi和vim都是Linux中的编辑器,不同的是,vim比较高级,可以视为vi的升级版本.vi使用于文本编辑,但是v

4-2 编辑器之神--vim

vim vi:Visual editor文本编辑器 文本:ascii,Unicode vim:VIsual editor iMproved 官网:www.vim.org 帮助网站:Vimhelp.org vim -d FILE1 FILE2 #对比两个文件 vim +$ FILE #打开文件后,让光标处于第$行的行首 vim +/PATTERN FILE #让贯标处于第一个被PATTERN匹配到的行的行首 vim -b FILE #二进制方式打开文件 vim -m FILE #只读文件打开文件

新手入门之——Ubuntu上的编辑器之神Vi / Vim

Ubuntu上的编辑器有gedit.vi.sublime等.gedit一般在没有其他编辑器时临时使用,大部分情况下,vi和sublime使用的比较多,Linux系统内置了vi和sublime,其中,sublime是可视化的编辑器可以通过鼠标操作可以实现各种功能,学习起来比较容易,这里就不作赘述.今天主讲的是非可视化的编辑器vi,提到vi编辑器既让人爱又让人恨.学会vi编辑器的程序猿爱死了vi,新手恨死了vi.接下来就系统的讲解下VI编辑器,供大家参考查询. vi又叫vim,这两个是一样的. vi

编译器之神vim大改造

相信码农都听过两大神器,一是emacs,一是vim.大家都知道e党和v党老是吵架.其实,这并没有什么好吵的,只是每个人都有自己适用的东西.作者接触了vim,也接触过emacs.对于作者,觉得vim更加适用. 下面,给大家介绍一下作者自己的vim配置.github地址:https://github.com/tenghui0425/VimScripts 首先给大家看一下大图.这个是vimrc配置的图目录情况. 配置主要是以下几块. 基本配置,放在.vimrc下,比如一下全局的map.最后加载一个基本

Vim-编辑器之神

几点声明: 作者只是一位小小的 \(OIer\) ,并不会什么过于神仙的东西,我这篇文章只是帮助人入门的而已. 若有人在 OI-Wiki上见过了原文章,原作者是我 \(......\) ,真不是抄 \(......\) 历史与争端 Vim 的前身是 vi,一个简洁但是略有不足的编辑器,但是从 vi 开始,编辑器的模式区分和唯快不破的思想就已经体现的很到位了.Vim 即是 vi improved,是在 vi 原本所有的方式上进行的进一步提升,但是并不会改变 vi 的其他本质,只是增加了更多适应如今

Linux 开发环境搭建与使用——Linux 常用编辑器之vim

概述 vi 编辑器是 Linux 系统中最常用的文本编辑器,vi 在Linux界有编辑器之神的美誉几乎所有的 Linux 发行版中都包含 vi 程序. vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux 上也有很多图形界面的编辑器可用,但vi的功能是那些图形编辑器所无法比拟的. 那 vim 又是什么呢? vim 是 vi 的升级版,它不仅兼容 vi 的所有指令,而且还有一些新的特性,例如 vim 可以撤消无限次.支持关键词自动完成.可以用

linux 强大的编辑器之vi

vi编辑器是一个处理ASCII数据的文本工具.大多数linux发行版都已经默认安装了vi编辑器.vi是visual interface的缩写vim是 visual interface improved即增强版的vi,vim默认支持代码命令加亮,这样使得文本更易看懂.vi有两种配置文件一种是全局配置文件 /etc/vimrc,全局配置文件的设置对所有用户都生效.另一种是用户配置文件,这个配置文件需要自己手动去创建,如 touch ~/.vimrc,创建在用户家目录,并把它创建为隐藏文件,在这里的设

一段奇妙的vim编辑器之旅

一.背景 对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分享给你们,也方便自己以后复习查询. 二.vim入门 1.启动vim,使用命令:vim fileName 如果该文件存在,则打开并显示内容:如果文件不存在,则在第一次保存的时候创建新文件. 2.vim的三种模式 命令模式:可以移动光标.删除.复制.搜索. 插入模式:通过输入"a"."i"."o&