vim: vi improved.
vim 的工作模式:
1. 命令模式:
2. 插入模式:
3. 编辑模式
进入 vim:
vim filename
vim +/20 filename
vim +/hello filename
在 vim 的命令模式下 按 : 是要输入命令。
基本命令:
-- 插入命令
i -- 当前光标位置插入
I -- 光标所在行行首插入
a --
A --
o --
O --
-- 光标移动
h
j
k
l
b
w
e
0
$
4$ -- n$
fa -- 移动到当前行的字符 a 处
% 移动到当前行中匹配的括号中
5G -- nG 光标快速定位到指定的行处
-- 查找
/要查找的字符 /hello world, 然后按 n 查找下一个 --向后查找
?要查找的字符 ?hello world, 按 n 查找下一个 -- 向前查找
-- 替换
:替换的起始处,替换结束处 s/要被替换的字符串/替换的字符串/g
不加 g 的话,之替换没行第一个找到的字符串
替换是实现了 sed 命令; : 表示要执行命令, s 告诉是 substitution,这个 sed 完全一样。
注意:sed 默认是使用 BRE,vim 中实现的 sed 也是 BRE。
关于 BRE/ERE 请看 http://blog.csdn.net/phpandjava/archive/2009/12/05/4945233.aspx
-- 删除
x 删除光标后一个字符
5x 删除光标后 5 个字符
X 删除光标前一个字符
5X
dd 删除光标所在整行
5dd
-- 复制
yy 复制一整行
-- 粘贴
p
-- 选择
按 v,然后 hjkl 配合
J -- 把相邻两行进行连接,己去掉两行件的 换行
u -- 撤销
. -- 重复最后一次修改,比如最后一次为 dd, 则在按 . 的话就再次删除
Ctrl + r -- 重新执行刚才的撤销
-- 保存
:w
:w ./newfilename 令存为
退出
:q
强制性操作
! -- :w! :q!
:set nu -- 显示行号
:set nonu -- 不显示行号
vim 配置文件
在启动 vim 时,vim 会到当前登录用户的 home 目录下读取 .vimrc 文件(如果有的话)。
进入 .vimrc,输入
set nu (用于显示行号)
-- 多窗口编辑
vim file1
:sp file2 或 :split file2 水平排列
:vsp file3 或 :vertical split 垂直
:new 打开新的文件 水平
:vnew 或 :vertical new 垂直
文件切换 先按 Ctrl+w ,在按 j 或 h 或 k 或 l 来回切换
vim -o file1 file2 file3 同时打开多个文件
:exit 保存并退出
:quit 或 :q 直接退出
:wall 保存所有
:qall 退出所有
:close 确保有一个文件不关闭
:only 关闭其他文件
:wqall
ctrl + w + H 移动打开的窗口
ctrl + w + J
ctrl + w + K
ctrl + w + L
n, ctrl, w, + 增加 n 行
n, ctrl, w, - 减少 n 行
-- vim 多 tab 操作
:tabnew 新建一个 tab
:tabnew filename 在新 tab 中打开 filename
:tabp 前一个 tab
:tabn 后一个 tab
-- 翻页
ctrl + f 向后一页
ctrl + b 向前一页
ctrl + e 向后半页
ctrl + u 想前半页
gg -- 文件开头
G -- 文件末尾
:ab myhere [email protected]
输入 myhere 直接替换为 [email protected]
:ab 显示所有所写
:una myhere 取消 myhere 的缩写
vim 中使用 linux 命令
:! 命令
:! ls -al
:r ! 命令 将命令的结果导入到当前文件
:r ! date
-- 定义快捷键
:map myhere o#[email protected]
查看定义的快捷键
:map
取消定义的快捷键
:unmap myhere
-- 查看文件编码
:set fileencoding
:set fileencoding=gbk
-- 帮助
:help
:help echo