Linux服务器文本编辑器
Linux服务器文本编辑器

Linux服务器文本编辑器

vim编译器

vi编译器是Unix最初的编译器。他可能是世界上最复杂的编译器,但是学好它可以带来极大的收获。

vim基础

vim编译器在内存缓冲区中处理数据。只要键入vim命令和要编译的文件名就可以启动编译器。
如果vim指定的文件不存在,vim会开辟一个新的缓冲区域来编辑。如果文件是存在的,vim会将整个文件都读入一块缓冲区域来准备编辑。

vim编辑器有两个操作模式:

  • 普通模式
  • 插入模式

当你刚打开要编辑的文件时,vim编辑器会进入普通模式。在普通模式中,vim编辑器会将按键解释成命令。
在插入模式下,vim会将你在当前光标位置输入的每个键都插入到缓冲区。
按下i键即可进入插入模式。要退回普通模式按下退出键(Esc)。

在普通模式中,可以用方向键在文本区域移动光标。或者用命令按键:

  • h:左移一个字符
  • j:下移一个字符
  • k:上移一个字符
  • l:右移一个字符
  • PageDown(Ctrl+F):下翻一屏
  • PageUp(Ctrl+B):上翻一屏
  • G:移动到缓冲区最后一行
  • num G:移动到缓冲区第num行
  • gg:移动到缓冲区第一行

vim编辑器在普通模式下有个特别功能叫做命令行模式。命令行模式提供一个交互式命令行,可以输入额外的命令来控制vim,在普通模式下按冒号键,光标会移动到消息行,然后出现冒号,等待输入命令。

在命令行模式有几个命令可以将缓冲区数据保存到文件中并退出vim。

  • q:如果未修改缓冲区数据,退出。
  • q!:取消所有对缓冲区数据的修改并退出。
  • w filename:将缓冲区数据保存到另一个文件中。
  • wq:将缓冲区数据保存到文件中并退出。

编辑数据

在插入模式下,可以向缓冲区插入数据。然而有时将数据输入到缓冲区后,需要再对数据进行添加或删除。
在普通模式下,vim编辑器提供了一些命令来编辑缓冲区中的数据。

命令描述
x删除当前光标所在位置的字符
dd剪切当前光标所在的行
dw剪切当前光标所在位置的单词
d$剪切当前光标所在位置 至 行尾的内容
J删除当前光标所在行行尾的换行符
u撤销前一个编辑命令
a在当前光标后追加数据
A在当前光标所在行 行尾追加数据
r char用char替换当前光标所在位置的单个字符
R text用text覆盖当前光标所在位置的数据,直到按下Esc键
有些编辑命令允许使用数字修饰符来指定重复该命令的次数。例如,命令2x会删除从当前光标位置开始的2个字符,命令5dd会删除从当前光标开始的5行。

复制和粘贴

剪切和粘贴 上面提到的dd命令其实就是剪切,删除的内容单独存在了寄存器中。可以使用p命令取回数据。
复制和粘贴 vim中复制命令是y(yw表示复制一个单词、y$表示复制前光标所在位置 至 行尾的内容)。粘贴一样使用p命令。
复制的复杂之处在于,你不清楚自己复制了什么东西,直到你把他粘贴出来才能看见。
这时可以使用可视模式v命令来解决。(v命令类似windows下的长按鼠标选中)

查找和替换

使用vim的查找命令可以轻松的在缓冲区中查找数据。要输入一个查找字符串,按下下斜线(/)键。光标会跑到消息行,然后vim会显示出斜线。输入要查找的文本,按下回车。vim会采用以下三种回应的一种

  • 如果要查找的文本出现在光标当前位置之后,则光标会跳到该文本出现的第一个位置。
  • 如果要查找的文本未出现在光标当前位置之后出现,则光标会绕过文件末尾,出现在该文本所在的第一个位置。
  • 输出一条错误信息,说明没有查到文本字符串。

替换命令允许使用一个单词来替换掉文本中的某个单词。必须进入命令行模式才可以使用替换命令。

:s/old/new/
:s/old/new/g  替换所有old(针对光标所在的这一行)
:n,ms/old/new/g 替换n行到m行之间所有old
:%s/old/new/g  替换整个文件中所有old
:%s/old/new/gc  替换整个文件中所有old,但每次出现都提示
#g的全局替换控制的是行,%控制的是整个文件。

linux还有很多编辑器,例如nano(非常基础简单的一款)、emacs、KDE、GNOME……这里不再介绍,只要掌握一种编辑器并精通就足够了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注