5.1 vim
Vi IMproved, a programmers text editor
Vim is a text editor that is upwards compatible to Vi.
It can be used to edit all kinds of plain text.
It is especially useful for editing programs.
vimtutor - the Vim tutor
vimdiff - edit two, three or four versions of a file with Vim and show differences
/etc/vimrc # vim的配置文件
/root/.vimrc #自定义配置
一般模式下移动光标:
按字符移动:
k 上移
j 下移
h 左移
l 右移
空格 右移,至行尾自动换行
还可以 数字+hjkl空格 移动指定的n个字符
ctrl+f 在文件中前移一页(相当于 page down);backward
ctrl+b 在文件中后移一页(相当于 page up);forward
行内移动:
0 数字0,左移光标到本行的开始;
$ 右移光标,到本行的末尾;
^ 移动光标,到本行的第一个非空字符。
gg 将光标定位到文件第一行起始位置;
G 将光标定位到文件最后一行起始位置;
NG或Ngg 将光标定位到第 N 行的起始位置。
一般模式下复制剪切粘贴:
^r redo
VISUAL模式下 选中字符
u:全部变为小写
U:全部变为大写
编辑模式:
i 在光标左侧插入正文
I 在光标所在行的开头插入
a 在光标右侧插入正文
A 在光标所在行的末尾插入
o 在光标所在行的下一行增添新行
O 在光标所在行的上一行增添新行
命令模式:
脱意字符:
\
#
@
:nohl 取消高亮
":x"和":wq"的区别:
:wq 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。
这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。因为文件即使没有修改,":wq"强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。