VIM相对于VI做了哪些提升?
- VIM支持多级撤销
- VIM可以跨平台运行
- VIM支持语法高亮
- VIM支持图形界面
- Command Mode - 命令模式
- Insert Mode - 插入模式
- Last Line Mode - 底行模式(尾行,末行)
vim + 进行打开文件定位第几行 n可以由于切换/imooc 查找内容之间的切换
命令模式:
#vim aaa bbb ccc 一次创建3个文件; :n 进行切换;:prev切换到前一个文件
#vim + abc 打开文件之后把光标定在文本的最后一行
#vim +3 abc 定在第三行
#vim +/imooc abc 定在第一次有imooc的那一行
q! 退出abc文件
命令模式:
vim abc 打开文件,光标位于第一行或者上次编辑退出时所在行(不同的Linux情况不同)
vim + abc 打开文件,光标位于最后一行
vim +1000 abc 打开文件,光标显示最后一行行首(行数小于1000)
vim +/imooc abc 打开文件,光标位于imooc出现的第一行,按e键在多个imooc处跳跃
vim +/3 abc 打开文件,光标位于第3行
vim a b c 同时修改(不存在则创建)三个文件,进入后在底行模式中输入:n顺序进入下一个文件,:N回到上一个文件
常用指令:
#底行模式常用命令
:w 保存
:q 退出
:! 强制执行
:ls 列出当前编辑器中打开的所有文件
:n 切换到下一个文件
:N 切换到上一个文件
:15 光标快速定位到15行
/xxx 从光标位置开始向后搜索第一次出现xxx的行
?xxx 从光标位置开始向前搜索第一次出现xxx的行
#命令模式常用指令
h 光标左移
j 光标下移
k 光标上移
l 光标右移
Ctrl+f 向下翻页(front)
Ctrl+b 向上翻页(back)
ctrl+d 向下翻半页(down)
Ctrl+u 向上翻半页(up)
dd 删除光标所在行
o 在光标所在行的下方插入一行并切换到输入模式
yy 复制光标所在的行
p 在光标所在行的下方粘贴
P 在光标所在行的上方粘贴
Vim有三种模式:Normal 、Insert 、 Visual。
在Normal模式下,可以输入运行命令;(按esc
键可以退出Insert模式和Visual模式回到Normal模式)
在Insert模式下,可以输入编辑文本(输入i
进入Insert模式);
在Visual模式下,可以对选定的文本运行命令操作并该命令仅仅作用于选定文本(输入v
进入Visual模式)。
复制文本:
先进入Visual
模式,按上下键选中需要进行复制的文本,输入y
对文本进行复制,然后输入p
进行文本的粘贴。
- :wq → 存盘 + 退出 (:w 存盘, :q 退出)
- i → 进入
Insert
模式,按ESC
回到Normal
模式 - x → 删当前光标所在的一个字符
- p → 粘贴内容到剪贴板
- y → 复制内容到剪贴板
- dd → 删除当前行,并把删除的行存到剪贴板里
- hjkl (强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。
:help <command>
→ 显示相关命令的帮助。你也可以就输入 :help 而不跟命令。(注:退出帮助需要输入:q)
a: 在光标后插入
o: 在当前行后插入一个新行
O: 在当前行前插入一个新行
cw: 替换从光标所在位置后到一个单词结尾的字符
0: 数字零,到行头
^: 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
$: 到本行行尾
g_: 到本行最后一个不是blank字符的位置。
/pattern: 搜索 pattern 的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)
#p/P都可以,p是表示在当前位置之后,P表示在当前位置之前
P: 粘贴
yy: 拷贝当前行当行于 ddP
u → undo
<C-r> → redo
:e <path/to/file>: 打开一个文件
:w: 存盘
:saveas <path/to/file>: 另存为 <path/to/file>
:x, ZZ 或 :wq: 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
:q!: 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
:bn 和 :bp: 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。