Vim编辑工具常用指令

一、VIM 文本编辑

vi的名字取自于visual,它是一个全屏幕文本编辑程序。在Linux系统中vi是最常用的编辑程序,它的文本编辑功能十分强大,但使用起来比较复杂。初学者可能感到困难,经过一段时间的学习和使用后,你就会体会到使用vi非常方便。
vim是vi的增强版,所以vi的功能vim都有,而且vim新增了许多vi没有的功能,它比vi容易使用。

1、vim的启动

在终端的命令行输入vim后,便启动Vim,此时的状态为命令模式。
(1) vim 启动vim,然后通过:r file 载入文件名为file的文件
(2) vim file1
如果file1文件不存在,将临时建立此文件;如该文件存在,则光标定位在第1行第1列的位置上。
(3)vim + file1
如果file1文件不存在,将建立此文件;如该文件存在,进入文件最后一行进行编辑。
(4)vim +n file1
如果file1文件不存在,将建立此文件;如该文件存在,进入文件第n行进行编辑。

2、 Vim中对文件的保存

    :w          保存到当前文件    
    :w file     另存到file文件中
    :e!           放弃所有修改,从上次保存文件开始再编辑

3. 退出vim

(1) 在命令模式下 用 ZZ (大写)退出,退出会保存文件。
(2) :wq 保存到当前文件并退出
(3) :q! (或:quit)
强行退出vim,使被更新的内容不写回文件中。仅 键入命令:q
时vim发现文本内容已被更改,将提示用户使用“!”命令退出。

vim的基本模式

  1. 命令模式
  2. 输入模式
  3. 末行模式

当vim工作在命令模式下,输入的字符被视为执行特定vi功能的命令;而工作在输入模式下,输入的字符是编辑文件的正文。命令模式是vi的默认模式,命令模式下输入英文大小写字母的含义是有区别的.
在命令模式下,你所能进行的操作有移动光标在屏幕上的位置,标记、删除、移动、复制字符或文本区块,还可以将文件写入或退出编辑器,亦可设置编辑环境,如寻找字符串、列出行号等。此外在系统命令提示符下输入vi及文件名称后,即进入vi全屏幕编辑画面(命令模式)。

模式转换: 命令模式->插入模式

只有在输入模式下,才可进行文字输入,在命令模式下可按“i”或“a”或“o”等键进入输入模式。
i——在目前光标前插入所要输入之文字。
a——在目前光标后开始输入文字。
o——在当前光标所在行下新增一空行,并从行首开
始输入文字。
I——插于行首。
A——插于行尾。
O——在当前光标所在行上新增一空行,并从行首
开始输入文字。
模式转换:插入模式 ->命令模式
ESC
模式转换:命令模式 ->末行模式

模式转换:末行模式 ->命令模式
ESC
模式转换:插入模式 ->末行模式
请注意:插入模式和末行模式不能直接转换

基本vi命令

1、移动光标

  移动光标h、j、k、l:分别控制光标左、下、上、右移一格。
  Ctrl+b: 上滚一屏。backward
  Ctrl+f: 下滚一屏。foreward
  Ctrl+d: 下滚半屏。 down
  Ctrl+u  : 上滚半屏。  up
  gg: 移动光标到第一行。
G: 移到光标最后一行。
nG: 移到光标到第n 行。
:n   移到光标到第n 行。
$:         移到光标到当前行的行尾
0(数字):   移到光标到当前行的行首    

2. 删除

2.1 字符删除

x: 删除当前光标所在处一个字符。(类似与Delete)
nx: 删除当前光标所在处以及后面共n个字符。
        例如:   5x表示删除5个字符。
 X: 删当前光标的左边一个字符。 (类似与 Backspace )
 D: 删除当前光标至行尾。

2.2 行删除

dd:删除当前光标所在行。
ndd:删除当前光标所在后面n行。
dG:删除当前光标所在行至文件末尾。
:n1,n2d: 删除n1到n2行。
例如:1,12d表示删除自行1至12行。

3. 复制

3.1 复制字符

    多按几次ESC,然后按v,进入可视方式,然后移动方向键选中文本, 
    然后按y,就拷贝完成

3.2 复制行

      yy:                     复制当前行
    nyy:                     复制当前行以下n行
    :n1,n2 copy dn       复制n1~n2 行数据后粘贴到dn行

4. 剪贴

    dd:剪贴当前行
     ndd:剪贴当前行以下n行

5. 粘贴

p(paste): 如果拷贝的是整行粘贴在当前行下。
如果拷贝的是字符粘贴在当前光标之后
P(大写):如果拷贝的是整行粘贴在当前行上。
如果拷贝的是字符粘贴在当前光标之前

6. 字符替换(replace)

r: 取代光标处的字符。
R: 取代字符直到按ESC为止。

7. 取消(undo)

u: 取消上一次操作。

8. 寻找字符串

/string 从光标所在处向后寻找“string”字符串,按n可往下继续找,按
N 向上查找。
?string 从光标所在处向前寻找“string”字符串,按N可往下继续找,按
n 向上查找
:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感

9. 替换字符串

:%s /old/new 将全文每一行第一个匹配项old 替换为new。
:%s /old/new/g 全文替换old 为new
:n1,n2s /old/new/g 在n1—n2行间替换old 为 new

10. 精确查找字符串

在vi中可以通过在字符串中加入如下特殊字符,从而使得查找更加精确。
匹配行首,字符串要以^开头
匹配行尾,字符串要以$结束

例如,
要查找一个以search为行首的行,则键入/^search ,要查找一个以search为行尾的行,则键入/search$。

11. 其他常见指令

   :set nu              设置行号
   :set nonu          取消行号设置
   :.=                     打印当前行的行号
   :=                      打印文件中的行数
   ctrl+g               显示文件名、当前的行号、文件 的总行数和
                           文件位置的百分比

你可能感兴趣的:(Linux系统,vim,编辑器,linux)