linux-c-vi编辑器

来源:互联网 发布:淘宝低价引流软件 编辑:程序博客网 时间:2024/06/07 17:01

linux下Vi编辑器

1. 简介

vi编辑器

2. 三种工作方式

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

3. vi一般操作

3.1 文件基本操作

打开文件:

vi test.c

打开文件并跳到指定行:

vi +行号 文件名
vi +5 test.c

打开文件并跳转到模式匹配后的第一行:

vi +/模式字符串 文件名
vi +/main test.c

取消高亮显示:

:set nohlsearch

打开多个文件

vi *.c

打开多个文件并模式匹配到第一行

vi +/main .c .h

3.2 文本插入操作

插入文本命令

i 命令将文本插入到光标所在位置前.
I 命令将文本插入到当前行的行首.

追加文本命令

a 命令将文本追加到光标当前所在位置之后.
A 命令將文本追加到所在行的行尾.

空行插入命令

o 命令将光标所在行的下面插入一个空行.
O 命令将光标所在行的上面插入一个空行.

3.3 文本删除操作

文本删除命令 命令的意义 x 删除光标处的字符 X 删除光标处前面的字符 dd 删除光标处所在的整行 D或d$ 删除从光标所在处开始到行尾的内容 d0 删除从光标前一个字符开始到行首的内容 dw 删除一个单词 d( 删除到上一句开始的所有字符 d) 删除到下一句开始的所有字符 d{ 删除到上一段开始的所有字符 d} 删除到下一段开始的所有字符 d < CR > 删除包括当前行在内的两行字符

注:< C R > 回车

3.4 文本复制操作

文本复制命令 命令的意义 yy 复制光标所在的整行 Y或y$ 复制从光标所在处开始到行尾的内容 y0 复制从光标前一个字符开始到行首的内容 y( 复制到上一句的开始 y) 复制到下一句的开始 y{ 复制到上一段的开始 y} 复制到下一段的开始 y< CR > 复制到当前行在内的两行的内容 yw 复制一个单词

p命令:粘贴命令,粘贴当前缓冲区的内容.
v命令:在命令行模式下进行文本选择.
V命令:在命令模式下按行进行文本选择.

3.5 撤销命令

u命令:该命令撤销上一次所做的操作.
U命令:该命令会一次性撤销自上次移动到当前行以来做过的所有操作,再使用一次U命令则撤销之前的U命令所做的操作,回复被撤销的内容.

3.6 重复命令

命令行模式下 “.” 键即可.

3.7 退出vi

q命令:退出,不过如果修改后,不会退出.
q!命令:强制退出, 不管做没做修改都退出.
w命令:保存文件命令.
w 新文件名 : 将当前文件保存到 ‘新文件名’ 的文件.
w! 文件名 : 将当前文件保存到 ‘新文件名’ 的文件,不管有没有 ‘新文件名’ 文件.
wq命令: 保存并退出.
x命令:如果文件修改过保存文件, 否则直接退出.

4. vi的增强操作

4.1 替换命令

r命令:将当前光标所指的字符替换尾提供的字符.
R命令:进入replace模式.在此模式下,每个输入的字符都会替换当前光标下的字符,直到输入< Esc >结束该模式.

4.2 光标移动

光标移动命令 命令的意义 h 光标左移一个字符 j 光标下移一行 k 光标上移一行 l 光标右移一个字符 H 将光标移动到当前屏幕的第一行 M 将光标移至屏幕显示文件的中间行的行首 L 将光标移至屏幕显示文件的最底行的行首 G numG移动的文件的num行

4.3 按字移动光标

w和W命令:将光标右移至下一个字的字首.区别:w为英文单词-标点符号-和非字母字符, W 两个空格之间的任意内容.
e和E命令:如果光标起始位置处于字内,则e和E命令将把光标移动到本字字尾,则e和E命令将把光标移动到下一个字的字尾.区别:同上.
如果光标处于字内,则移动到字首,如果处于字首,则移动到上一个字的字首.区别:同上.

4.4 按句移动光标

( 命令:该命令将光标移动到上一个句子的开头.
) 命令:该命令将光标移动到下一个句子的开头.

4.5 按段移动光标

{ 命令:该命令将光标向前移至上一个段的开头.
} 命令:该命令将光标向后移至下一个段的开头.

4.6 文本行的移动

‘>’ 命令:>num将指定的正文行向右移动num个空格.
‘<’ 命令:将指定的正文向左移动.
“>>” 命令:右移8个空格.
“<<” 命令:左移8个空格.

4.7 文本的异行移动

m命令:5m2 第5行移动到第2行.

4.8 屏幕移动

滚屏和分页命令 命令的意义 ctrl+u 向前滚动半屏 ctrl+d 向后滚动半屏 ctrl+f 向文件尾滚动一屏 ctrl+b 向文件首滚动一屏

4.9 查找命令

/命令: /string–>从光标处开始向后寻找字符串string.
?命令: ?string–>从光标处开始向前寻找字符串string.
n命令: 重复上一条检索命令.
g/命令: g/string–>使光标停止在第一个检索到的string串的行首.

4.10 替换命令

[range]s/s1/s2/ [option]

option
g/ 表示在全局文件中进行替换.
/c 表示在每次替换之前需要用户进行确认.

例子

“1,10” 表示从第一行到第十行.
“%” 表示整个文件,同”1,..,”从当前行到文件尾.

\< word 替换以word开始的单词的word部分

%s/\< int/abc/cde 表示将以abc开头的单词替换以cde开头.
%s/\< buf/stat_buf/g 更改stat结构的变量名,将整个文件中的buf替换为stat_buf.

4.11 窗口的切分

切换命令 命令的意义 ctrl+w,然后j 移动光标到下面的一个窗口 ctrl+w,然后k 移动光标到上面的一个窗口 ctrl+w,然后q 关闭当前窗口 ctrl+w,然后q 移动光标到另一个窗口

5 设置环境

行号设置命令 :set nu {nonu}
显示行号 :set hlsearch {nohlsearch}
语法缩进命令 :set autoindent
文件存储命令 :set backup {nobackup}
显示选项命令 :set all
语法高亮命令 :syntax on {off}
大小写区分命令 :set ignorecase {noignorecase}

0 0