2. Linux 编辑器 vi/vim
vi 是 UNIX 环境下的通用编辑器, 习惯使用 Notepad 的 Windows 用户最初使用
vi 可能会觉得很不顺手, 或者说很难用, 但是只要稍加练习, 就会发现对于普通的
文本编辑工作, vi 的确是一个使用起来非常舒服的编辑器.
由于 vi 是设计为终端用户使用的, 不要说鼠标和图形界面, 有的终端可能连移动
光标的方向键也没有, 为了照顾终端用户, vi 可以让用户手指始终不离开控制区,
就能完成编辑工作.
可以直接运行 vi , 或者附带文件名为参数运行 vi
vi 的编辑文件一共有三种状态: 命令模式, 编辑模式, 执行模式. 命令模式是 vi
的初始模式, 在此模式下, 任何终端输入(键盘输入), vi 都把之作为 vi 命令来解
释; 命令/编辑模式, 以及命令/执行模式之间可以切换, 但不能从编辑模式切换到
执行模式, 或者从执行模式切换到编辑模式
对于初学者来说, 最容易犯的错误就是在编辑模式下试图输入命令, 当对着 vi 不
知所措的时候, 多按几下 ESC 回到命令模式, 然后再思考下一步操作
输入”:”(冒号)进入执行模式
:e test.txt 编辑”test.txt”这个文件
:w 将当前编辑文件保存
:w test.txt 将当前编辑文件以文件名”test.txt”保存
:q 退出当前编辑文件
:q! 不存盘强制退出
:wq 保存当前文件并退出
:%s/string1/string2/g 将全篇文章的string1替换为string2
:n1,n2s/string1/string2/g 将第n1行到第n2行的string1替换为string2
在命令模式下输入i, I, a, A, o, O, r, R 进入编辑模式, 在编辑模式下, 任意文
本字符的输入都将被添加到文件中
i 在当前位置插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行后另起新行插入
O 在当前行前另起新行插入
r 修改当前字符, 修改一个后返回到命令模式
R 修改当前字符, 直到输入 ESC 后才返回命令模式
在编辑模式下
ctrl+h 删除(或反修改)刚刚输入的字符
ctrl+w 删除(或反修改)刚刚输入的单词
ctrl+u 删除(或反修改)当前行首到当前光标处的内容
在命令模式下所使用的一些最常用的命令如下:
(光标移动命令)
h 向左移动光标
j 向下移动光标
k 向上移动光标
l 向右移动光标
w 向右移动一个单词
b 向左移动一个单词0 到行首^ 到行首的第一个非空白字符
$ 到行尾% 到匹配的括号, 包括 () [] {}
nG 到第n行
G 到最后一行
ctrl+f 向下翻页
ctrl+b 向上翻页
ctrl+d 向下翻半页
ctrl+u 向上翻半页
(删除命令, 注意删除命令都会把所删除内容存入 vi 维护的一个剪贴板里去)
x 删除当前字符
X 删除前面一字符
d 删除指令, 通过附加光标命令比如h w $ 指定删除范围
dd 删除行
(拷贝命令, 将所选择内容拷贝入 vi 维护的剪贴板)
y 拷贝命令, 类似于 d 删除命令
yy 拷贝当前行
(粘贴命令)
p 在当前光标处粘贴
P 在当前光标前粘贴
(查找命令)/querystring 从当前光标处向后查找 querystring?querystring 从当前光标处向前查找 querystring
n 继续查找
N 反向继续查找
(其他命令)
J 连接两行~ 大小写替换
. 重复编辑指令
u 撤销上一次指令(标准 vi 只能撤销一步指令操作)
在命令模式下可以通过在命令前输入数字 n 表示重复执行 n 次指令, 例如:
10dd 删除 10 行20l 向右移动 20 个字符
d40w 删除 40 个单词
当用户开始使用数字重复执行指令的时候, 就应该能体会到 vi 的优秀特性了. 本
文档只是为了给初次接触 vi 的用户提供一个入门的参考, 关于 vi 的更详细的使
用命令介绍, 请查阅其他资料.
在 Linux 系统上可以使用 vi 的一个增强版本 vim. vim 比起 vi 来多了诸如语法
高亮, 多窗口, 程序自动缩进等特性, 对于软件开发来说使用 vim 更为方便了
vim 执行模式
:syntax on 使用语法高亮
:set smartindent 程序自动缩进
vim 的多窗口特性通过输入ctrl+w后, 再输入一个窗口操作指令完成
ctrl+w s 水平分隔窗口
ctrl+w v 垂直分隔窗口(vim版本6以后才支持此特性)
ctrl+w 附加光标命令 在多个窗口之间切换光标
ctrl+w + 扩大当前水平窗口
ctrl+w - 缩小当前水平窗口
ctrl+w > 扩大当前垂直窗口
ctrl+w
以上4条命令也可以通过增加数字重复指令, 比如 ctrl+w 20 +
ctrl+w = 平分窗口
ctrl+w _ 最大化当前水平窗口
ctrl+w | 最大化当前垂直窗口
执行 :q 或其他退出命令关闭当前窗口
[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7916042/viewspace-907273/
,如需转载,请注明出处,否则将追究法律责任。