Linux C 编程开发- vi编辑器

28 阅读2分钟

vi的使用

vi有三种模式。

输入vi hello.txt。此时无法输入内容,当前为命令模式。

在命令模式下输入i(insert),这个时候表示进入到插入模式(编辑模式,插入模式,名字随便取,就是可以修改内容的模式)。

在插入模式模式,按Esc会退出插入模式并进入到命令模式。此时按冒号,会进入最下行模式(底行模式),此时可以输入一些指令。

文件的保存

在底行模式下,输入:wq表示保存当前文件并退出。:q!表示放弃对文件的修改并退出。:w abc.txt表示将当前文件另存为abc.txt。

文件的编辑操作

所有操作都在命令模式下完成。

删除

  • x ,删除光标所在后面的一个字符。
  • #x,比如2x删除光标所在位置后面2个字符。
  • X,大写的X。表示删除光标所在位置前面的一个字符。
  • #X,大写的X,比如2X删除光标所在位前面2个字符。
  • dd,删除光标所在的行。
  • #dd,删除多行数据。比如2dd 删除光标所在行开始的2行数据。

复制

  • yy复制当前行。
  • p粘贴数据。
  • #yy复制多行数据。
  • ym复制光标到结尾的所有字符。
  • #yw复制光标到结尾的N个字符。

撤回

  • u 撤退修改

插入

  • i在光标所在位置插入数据。
  • o在光标下面新建一行插入数据。

移动光标

在插入模式,命令模式都可以通过通过箭头键盘上的上下左右的箭头移动,也可以在命令模式,通过键盘的hjkl分别代表左边,下边,上边,右边。

  • ctrol + f 下一页。
  • ctrol + b 上一页。
  • ^光标移动到行首。
  • $光标移动到行尾。
  • #l,字母l,表示光标往后移动n个字符。
  • ctrol +g 显示光标所在的行号。
  • #G 移动光标到第三行的行首。

底行模式的其他命令

  • :set nu 显示行号。
  • :set nonu 隐藏行号。
  • :3直接跳转到第三行。
  • :/ui从头开始搜索字符,n查找下一个。
  • :?ui从结尾开始搜索字符,n查找上一个。

字符替换

  • :s/old/new 替换当前行的第一个old为new。
  • :s/old/new/g 替换当前行的所有old为new。
  • :#,#s/old/new/g 替换两行之间的old为new。
  • :%s/old/new/g替换全文的old为new。
  • :%s/old/new/gc替换全文的old为new,并要求确认。

其它操作

  • :!ls调用外部命令。
  • :#,#w a.txt将2行之间的内容另存为a.txt文件。
  • :r anotherfile 将另外一个文件的内容追加到当前文件