红联Linux门户
Linux帮助

Linux下vi 文书处理软体

发布时间:2006-03-02 00:05:45来源:红联作者:linux110.com
  vi 简易说明
  要管理好 Linux 系统,少不了要对设定档案进行编辑,如果您用惯了 Microsoft Word 或 Corel Wordperfect 的话,除了 Xwindows 里面的编辑程式(如 xemacs )用起来尚可应付外,于 Linux 的文字模式下,会觉得档案编辑程式都没有 Windows 程式那么方便。虽然 Linux 下面也有好多种文书编辑器,例如:ed、vi、pico、joe、emacs等。
  以下我们以最常见到的 vi 这套文书软体来介绍 Linux 底下的文书编辑动作。
  基本上 vi 共分为两种模式,一种是『编辑模式』,一种被称为『命令模式』,其中,在命令模式中尚包含『命令列模式』的情况。『编辑』与『命令』这两种模式的切换动作是以『Esc』来达成的。通常,档案一开启或者新建档时,会成为命令模式,如果要在档案中输入字元,就必需以小写的 i 来进入编辑模式,进入编辑模式后你输入的咚咚才会显示出来!那由『编辑模式』要变成『命令模式』时,就直接按『Esc』即可。而若要进入『命令列模式』时,就必须要在命令模式中输入『:』(冒号),那游标就会跑到萤幕的最下面一行来等待你输入啦!
  简易执行范例
  新建档案:
  好了,我们在 Linux 底下建立一个名为 test.dat 的档案,可以这样开启一个新档案:
  [root@tsai root]# vi test.dat
  进入编辑模式:
  一进入 vi 的画面你会看到一片空白(乌漆嘛黑的),而且即会进入命令模式,你可以输入 i 来进入编辑模式,这时候你会看到萤幕的最下方会出现『--INSERT--』字样:
  开始编辑:
  这时候你就可以随便按几个字来输入一下,在这里要提醒一下,『Tab』键与空白键是不一样的咚咚喔!
  回到命令模式:
  在编辑模式的时候,不论你按什么键(除了 Esc 之外)都会被视为字元而显示在萤幕上,这时按下 Esc 键后会回到命令模式,如果你会到了命令模式,但是要消除你目前游标所在行的内容,你可以输入『dd』,就可以杀掉一整列了!
  在命令列模式输入储存指令:
  OK,我们要存档了,存档并离开的指令很简单,输入『:wq』即可存档离开!这时你在提示字元后面输入『 ls -l 』即可看到我们刚刚建立的 test.dat 档案啦!
  命令列内容说明
  如前所述,所谓的命令列或命令模式,就是在最下面一行没有显示『--INSERT--』或者『--REPLACE--』字样的时候。通常在命令列中的指令有下面几种:(注意,当按下『:』 时,游标会自动移动到萤幕的最下面一行!)
  
  
  进入编辑模式:
  i 插入:在目前的游标所在处插入输入之文字,已存在的文字会向后退;
  a 增加:由目前游标所在的下一个字开始输入,已存在的文字会向后退:
  o 插入新的一行:从游标所在的下一行枝行首开始输入文字;
  r 取代:会取代游标所在的那一个字元;
  R 全部取代:会一直取代游标所在的文字,直到按下 ESC 为止;
  
  游标移动指令:
  k 或向上键 向上移一个字元;
  j 或向下键 向下移一个字元;
  h 或向左键 向左移一个字元;
  l 或向右键 向右移一个字元;
  H 游标移动到萤幕顶端;
  M 游标移动到萤幕正中央;
  L 游标移动到萤幕最夏方;
  + 游标移动至非空白字元的下一列;
  - 游标移动至非空白字元的前一列;
  [Ctrl] + [b] 萤幕向『后』移动一页;
  [Ctrl] + [f] 萤幕向『前』移动一页;
  [Ctrl] + [u] 萤幕向『后』移动半页;
  [Ctrl] + [d] 萤幕向『前』移动半页;
  [n] 先按数字后再按空白键:游标向后面移动 n 个字元;
  0 数字键『0』:移动到这一列的第一个字元;
  $ 移动到这一行的行尾;
  G 移动到最后一行;
  nG 移动到第 n 行(常与 :set nu 合用);

  J 将目前游标所在行与下一行连结;
  
  搜寻指令:
  /word 向游标之后寻找一个名为 『word』 的字串;
  ?word 向游标之前寻找一个名为 『word』 的字串;
  :g/word1/s//word2/g 寻找 『word1』 这个字串,并且以 『word2』 这个字串取代之;
  :n1,n2 s/word1/word2/g 将第 n1 行到 n2 行的字串 『word1』 都改成 『word2』;
  :1,$ s/ls/ll/g 将所有档案内容的 『ls』 这个字串改成 『ll』 这个字串;
  
  删除与复制:
  yy 或 Y 复制游标所在行的内容;
  nyy 或 nY 『n』 为数字:复制游标所在行向下 n 行之内容;
  p 将 yy 复制的内容贴到游标所在行的下面;
  x 删除一个字元;
  nx 『n』 为数字:删除 n 个字元;
  dd 删除游标所在那一行;
  ndd 『n』 为数字:向下删除 n 行;
  u 取消前一个动作;
  [Ctrl] + [L] 清除萤幕并重绘萤幕
  
  命令模式:
  :wq 将所做修改储存后离开 vi;
  :w 仅储存档案;
  :w [filename] 将目前的内容储存到 『filename』 这个档案中(类似另存新档);
  :r [filename] 将 『filename』 这个档案内容加到游标所在行后面;
  :q 离开 vi;
  :q! 强制离开 vi ;
  
  其他指令:
  :set nu 设定行号,让你可以轻易的找出错误;
  :set nonu 取消设定行号;
  :n1, n2 w [filename] 将 n1 到 n2 的内容存成 『filename』 这个档案;
文章评论

共有 4 条评论

  1. 于 2006-11-10 15:42:17发表:

    :ha3nd :ha3nd

  2. 于 2006-11-10 15:41:45发表:

    :0)1 :0)1 :0)1 :0)1

  3. ganlange 于 2006-03-12 09:21:45发表:

    :mad:1谢谢啦!!

  4. gzleyon 于 2006-03-06 21:16:48发表:

    正好学到,谢了