【linux基础】vim常用操作
http://www.cnblogs.com/lijia0511/p/5644566.html
1、在线安装vim:(原文)
sudo apt-get install vim (ubuntu)
2、vim初始化配置:
2.1 查看存放位置:
命令模式键入 :version (查看基本配置路径) :echo $VIM(查看具体路径值) :echo $HOME(查看具体路径值)
系统版本:/etc/vimrc,是整个系统vim的默认配置;
用户版本:~/.vimrc,是当前用户的vim配置,会覆盖系统配置, ~/.vimrc有时并不存在,此时用户可以建立一个.vimrc,放入主目录以实现自己的vim配置
3、vim基础操作
3.1 插入:
i → 在光标前插入 a → 在光标后插入 o → 在当前行后插入一个新行 O → 在当前行前插入一个新行 cw → 替换从光标所在位置后到一个单词结尾的字符
3.2 移动光标:
0 → 数字零,到行头(shift + 0,跳转到最后一行的最后一个字符) ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)(和 _ 有什么区别?) $ → 到本行行尾 g_ → 到本行最后一个不是blank字符的位置。 /pattern → 搜索 pattern 的字符串(如果搜索出多个匹配,可按n键到下一个)
3.3 删除/拷贝/粘贴:
x → 删当前光标所在的一个字符 dd → 删除当前行,并把删除的行存到剪贴板里 P → 粘贴(p是表示在当前位置之后,P表示在当前位置之前) yy → 拷贝当前行当行于 ddP
3.4 Undo/Redo:
u → undo 撤销上一步的操作 <C-r> → redo 重做上一步撤销操作
3.5 打开/保存/退出/改变文件(Buffer):
:e <path/to/file> → 打开一个文件(打开后,当前文件就关闭了?) :w → 存盘(w 后可以跟文件名) :saveas <path/to/file> → 另存为 <path/to/file> :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车) :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。 :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)
3.6 重复命令:
. → (小数点) 可以重复上一次的命令 N<command> → 重复某个命令N次
举例:
2dd → 删除2行 3p → 粘贴文本3次 10idesu [ESC] → 会写下 “desu desu desu desu desu desu desu desu desu desu “
. → 重复上一个命令—— 100 “desu “. 3. → 重复 3 次 “desu”
3.7 光标移动:
- NG → 到第 N 行 (注意命令中的G是大写的,还可以使用 : N 到第N行,如 :137 到第137行)
- gg → 到第一行。 (相当于1G,或 :1)
- G → 到最后一行。
- 按单词移动
w
→ 到下一个单词的开头。
e
→ 到下一个单词的结尾。
> 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成(例:程序变量)
> 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。(例:程序语句)
5.匹配移动
%
: 匹配括号移动,包括 (
, {
, [
. (需要把光标先移到括号上)
*
和 #
: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
可视化模式可以分为以下三种
v: 进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。
V: 进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。
CRTL+v: 进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。
基本指令
gv: 重复选中前一次可视化模式时选中的文本(对同一段文本反复操作时很方便)
ESC: 退出可视化模式
o: 光标移动到选中文本的另一结尾
O: 光标移动到选中文本的另一角落
实用例子
1)Visual Mode下,一样可以进行各种编辑操作~。
d: 删除高亮显示的文本
D: 删除一行,即使这一行中只有部分文本是高亮显示的。(y/Y, c/C都类似)
y: 复制高亮显示的文本
Y: 命令会复制整行
c: 将高亮显示的文本删除并进入编辑模式
C: 删除一行文本并进入编辑状态
2)高亮显示的文本块,我们可以用命令~进行大小写转换。用命令>增加缩进,或用命令<减少缩进。比如页首增加缩进(指令:ggVG)。
3)每一行行首加入一个#符号(多行注释太方便了)。gg到开头,CTRL+v进入块选择模式, G,这样就选中了所有的第一列,然后I进入列插入状态,然后输入#,再ESC即可。还有一种在行尾增加字符的类似方式, gg->CTRL+V->$(这一步是跳到行尾的关键)->A(列添加状态,可视化模式下,列的写入都是大写的I,A,C)->输入字符->ESC
4)V10j,选中10行,然后J合并成一行,同时以空格来分隔各行。如果不希望在行间插入空格,那么可以使用gJ命令
5)使用g?命令,可以使用rot 13算法来加密高亮显示的文本。针对同一个文本再次执行加密命令,就可以进行文本解密。(其实就是字母转盘,算不上加密)
6)在可视化模式下,按下:键就可以对选定范围进行操作。例如:我们先在可视化模式下选中文本,然后执行:write block.txt命令,就可以将文本块写入另一文件中。选择多行,然后执行:sort命令,则可以对选中的文本进行排序。