linux-c-vi编辑器
2015-10-25 23:13
495 查看
linux下Vi编辑器
1. 简介
vi编辑器2. 三种工作方式
命令行模式文本输入模式
末行模式
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 > | 删除包括当前行在内的两行字符 |
3.4 文本复制操作
文本复制命令 | 命令的意义 |
---|---|
yy | 复制光标所在的整行 |
Y或y$ | 复制从光标所在处开始到行尾的内容 |
y0 | 复制从光标前一个字符开始到行首的内容 |
y( | 复制到上一句的开始 |
y) | 复制到下一句的开始 |
y{ | 复制到上一段的开始 |
y} | 复制到下一段的开始 |
y< CR > | 复制到当前行在内的两行的内容 |
yw | 复制一个单词 |
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}