在linux系统当中有非常多的文本编辑器存在,而我们首先接触的就是nanonano编辑器的使用非常简单,在nano后直接加上文件名就可以打开一个新文件或旧文件。nano中:

Ctr+G, 取得在线帮助

Ctrl+X,离开nano,若修改,提示是否需要保存

Ctrl+O,保存文件

...

其他组合键在编辑器的下方都会显示出来,在这里就不多做说明了。下面,就介绍一下重要的文本编辑器vim的使用。

Vim具有程序编辑能力,可以主动以习题颜色辨别语法的正确性,方便程序设计,并且程序简单,编辑速度相当快,所有,使用vim编辑文件将是一个非常好的选择。

基本上vim分为3种模式,分别是编辑模式(又叫命令模式)、输入模式(又叫插入模式)和末行模式。在这要清楚,编辑模式是编辑整个文本,不是想文本中写入数据,比如删除两行、复制两行、粘贴都在编辑模式下执行,而输入模式,则是向文本中写入数据。

Vim中前加 是注释的意思

vim中,模式与模式之间可以相互转换

  编辑模式转为输入模式: ioacIOAC

     i (insert)添加在光标前面

     I  当前光标所在行首进行插入操作

     a append追加)光标后进行插入操作

     A 光标所在行的行尾进行插入操作

     o  光标所在行的下方打开一个新行,并进行输入操作

     O 光标所在行的上方打开一个新行

  输入模式转为编辑模式: Esc

  输入模式转为末行模式:  :

  末行模式转为输入模式:  摁两次Esc

  编辑模式不能直接转换为末行模式,需要间接转换。

打开vim编辑器的方法和nano相同,但vim的用法要比nano更全:

   #vim file1,file2,... 可以直接打开多个文件

   #vim +n file n为数字)  文件打开后光标直接出现在第n行的行首

   #vim +/string/ file  文件打开后光标出现在第一次出现string的行行首

vim编辑器编辑文件时退出方式

      :wq  保存退出

      :wqall 若打开多个文件,多个文件同时保存退出

      wq!  强制保存退出

      Shift+zz   亦是保存退出的意思

      :q  退出,不保存(vim中只要你动了文件中的内容不管改没改变,都默认为文件被改动,:q就会退不出去)

      :q!   强制退出,不保存

      :qall!   若打开多个文件,强制退出全部文件,不保存

    如何实现光标移动:

   h 或向左箭头键   向左侧移动                    

   l 或向右箭头键   向右移动                   

   j 或向下箭头键   向下移动                      

   k 或向上箭头键   向上移动

   w     下一个单词词首      3w 连跳3个单词

   e     先跳到本次词次尾,再往后跳到词的词尾   

   b     与e相反

  (    句子间跳转,向前跳,跳到句首 

      句子间跳转,向后跳,跳到句首

   {     段间跳转,往前跳一段

   }     段间跳转,往后跳一段

   0     绝对行首

   $     绝对行尾,与0相对

   ^     行首的第一个非空白字符

  Ctrl+f   向文件尾部翻一屏 

  Ctrl+b  相反,往文件首部翻一屏

  Ctrl+d   向文件尾部翻半屏   

  Ctrl+u  相反,往文件首部翻半屏

  +   光标移动到非空格符的下一行

  -   光标移动到非空格符的上一行 

  n  n为数字)

     20 再按      光标向后移动20

  H    光标移动到这个屏幕的最上方那一行的第一个字符

  M    光标移动到这个屏幕的中央那一行的第一个字符

  L    光标移动到这个屏幕的最下方那一行的第一个字符

:set nu      显示行号

:set nonu    撤消

set ai   自动缩进

:set noai   撤消

c  修改(change,跟跳转字符一块用,指定删除范围

   cw:删除光标所在的字符串,而后进入输入模式

   c$:  由光标所在位置删到行尾

   c0:由光标所在位置删到行首

   cc:  删除光标所在行   

   ncc: 删除光标往下n

       5cc  删除包括光标所在行往下5

   C : 光标所在位置删到行尾  类似c$

删除字符:      

x: 往后删除一个字符,删除之后进入输入模式

  nx:往后一下删除n个字符

X:  删除光标前面一个字符

  nX:往前一下删n个字符

替换:(replace

    r:  替换光标所在的那个字符一次

R:  一直替换光标所在的文字,直到按下[Esc]键为止

5rA: 光标所在处下5个字符换成A

撤销

uundo):撤销最近一次的编辑操作

uu: 撤销最近2次的编辑操作

nu: 撤销最近n次的操作 

Ctrl+r   撤销刚才的撤销操作

重做

redo)重复执行上一条命令 

复制

     yyank):复制包括光标所在行往下两行

     yy   复制光标所在行

     nyy n为数字)复制光标所在的向下n行,包括光标所在行

     y1G  复制光标所在行到第一行的所有数据

     yG  复制光标所在行到最后一行的所有数据

     y0  复制光标所在的那个字符到该行行首的所有数据

     y$  复制光标所在的那个字符到该行行尾的所有数据

剪切: 也可以当做删除来用

d    删除包括光标所在行往下两行

dd   删除光标所在行  

ndd  删除光标所在n

    d1G 删除光标所在行到第一行的所有数据

    dG  删除光标所在行到最后一行的所有数据

    d0  删除光标的在的那个字符到该行行首的所有数据

d$  删除光标所在的那个字符到该行行尾的所有数据

粘贴

p   光标所在行的下方

  光标所在行的上方

查找

    /work  向下寻找一个名称为word 的字符串             

    ?work  向上寻找一个名称为word 的字符串                  

    n   重复前一个查找的操作     

    N   为“反向”进行前一个操作

替换

    :n1,n2s/word1/word2/g  从第n1行到第n2行查找word1字符串,并替换成word2

    :1,$s/word1/word2/g   从第一行到最后一行查找word1字符串,并替换成word2

    :1,$s/word1/word2/gc  从第一行到最后一行查找word1字符串,并替换成word2,且在替换前显示提示字符给用户确认(confirm)是否需要替换

   其中的分隔符可为任意值,最好是命令中没有包含的字符

:%s/^#[[:space:]]*\([^[:space:]]\)/\1/g

:%s@\<\([[:alpha:]]\{1,\}\)e\>@\1E@\g

    %   全文搜索

    vim可以打开多个文件,当打开多个文件时:

    prev  上一个文件

    :next  下一个文件   

    first  第一个文件

    last   最后一个文件

    files  列出目前目前vim打开的所有文件

    N   编辑上一个文件

  编辑下一个文件

    qall  全部退出

    qall!  强行全部退出

 分割窗口显示多个窗口:

       水平分割:  Ctrl+ws

       垂直分割:  Ctrl+wv

       Ctrl+w,方向箭头    方向箭头向哪,就往哪移动 

       Ctrl+wt最上方窗口)  ,(最下方窗口)

  

          :set nu      显示行号

          :set nonu    撤消

          :set ai   自动缩进

          :set noai   撤消