一般命令模式可用的功能键说明, 光标移动, 复制粘贴, 查找
h 或 左箭头 | 光标左移一个字符 |
l 或 右箭头 | 光标右移一个字符 |
k或 上箭头 | 光标上移一个字符 |
j或 下箭头 | 光标下移一个字符 |
ctrl + f page down | 向下翻一页 |
ctrl + b page up | 向上翻一页 |
ctrl + d | 向下翻半页 |
ctrl + u | 向上翻半页 |
+ | 光标移动到非空格的下一行 |
- | 光标移动到非空格的上一行 |
n空格 | n 表示数字, 表示会向当前行右移动n个字符 |
0 或 home | 移到这一行的最前面 |
$ 或 end | 移到这一行的最后面 |
H | 屏幕上方第一行的第一个字符 |
M | 屏幕中间第一行的第一个字符 |
L | 屏幕下方第一行的第一个字符 |
G | 移到整个文件的第一行 |
nG | 移到文件的几行, 20G, 移到第20行 |
gg | 移到整个文件的最后一行 |
n回车 | n位数字, 向下移动n行 |
nj, nh | 向相应位置移动几行, 同上 |
/word | 向光标之下寻找名为word的字符串 |
?word | 向光标之上寻找名为word的字符串 |
n | 重复前一个查找操作 |
N | 重复上一个查找操作 |
:n1,n2s/word1/word2/g | 在n1和n2行之间寻找word1这个字符串,将它替换成word2 |
:1,$s/wod1/word2/g | 从第一行到最后一行将word1替换成word2 |
:1,$s/word1/word2/gc | 替换的时候先询问 |
x与X | 当一行中,x为向后删除一个字符(del), X为先前删除一个字符(backspace) |
nx nX | 当前行向前或先后删除n个字符串 |
dd | 删除(剪切)一行 |
ndd | 包括当前行的n行被删除(剪切) |
d1G | 删除(剪切)光标所在到第一行所有数据 |
dG | 删除(剪切)光标所在到最后一行所有数据 |
d$ | 删除(剪切)光标所在位置到该行的最后一个字符 |
d0 | 删除(剪切))光标所在位置到该行的第一个字符 |
yy | 复制光标所在的那一行 |
nyy | |
y1G | |
yG | |
y0 | |
y$ | |
p与P | p将已经复制的数据在光标下一行粘贴,P粘贴在上一行。 |
J | 将光标下一行数据结合成同一行 |
c | 重复删除多个数据, 例如向下删除10行, 10cj |
u | 恢复上一个操作 |
ctrl + r | 重复上一个操作 |
. | 重复前一个操作(删除, 粘贴什么的) |
一般命令模式切换到编辑模式
i 与 I | i为从目前光标所在处插入, I为当前行第一个非空格处开始插入 |
a 与 A | a为从光标的下一个字符开始插入, A为从光标所在的一行的最后一行开始插入 |
o 与 O | o为光标所在下一行处插入新的一行,O为在目前光标所在处的上一行插入 |
r与R | r只会替换光标所在那一个字符一次,R会一直替换光标所在的文字,直到按下Esc |
Esc | 退出编辑模式 |
一般命令模式切换到命令行模式
:w | 将数据写入硬盘中 |
:w! | 若是文件属性为只读, 强制写入(前提是你有权限) |
:q | 退出 |
:q! | 强制退出文件不保存 |
:wq | 写入退出, 注意先写,在退出 |
ZZ | 文件没有修改,则不保存退出,文件修改了,就保存退出 |
:w [filename] | 将编辑的数据保存成另一个文件 |
:r [filename] | 读入另一个文件, 就是将另一个文件的数据追加到光标后面 |
:n1,n2 w [filename] | 将n1到 n2行的内容保存到filename里 |
:! command | 暂时退出vim命令,执行command的显示结果, :! ls /home |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
比较牛B的功能
v | 字符选择,会将光标经过的地方反白 |
V | 行选择,会将光标经过的行反白 |
ctrl + v | 可视去块 |
y | y 复制反白 |
d | d 删除反白 |
p | p 粘贴反白 |
如果忘了是干嘛的,可以看鸟叔, 300页
多文件编辑
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个vim开启的文件 |
能做到就是,打开个文件, 将这个文件的部分内容复制到另一个文件中。
vim pp.py py.py 打开两个文件
输入命令 :files 看一下编辑文件有哪些
按任意键退出
第一行按4yy 复制四行
:n 来到下一个文件
G 来到文件的最后一行
p 复制数据
:q 退出
更牛B的多窗口功能(说实话,还是没win体验好, 差评)
:sp filename | 打开一个新窗口,如果不加filename,则再打开文件在一个新的窗口 |
ctrl + w + j 或下箭头 | 按住ctrl不放,在按下w, 放开所有的按键, 按上箭头或j, 实现窗口的向下的切换 |
ctrl + w + k或上箭头 | 按住ctrl不放,在按下w, 放开所有的按键, 按上箭头或j, 实现窗口的向上的切换 |
ctrl + w + q | 退出窗口,,也可以切换到指定窗口, 输入close |
vim自动补全功能(实际体验并不是很好)
组合键 | 补全的内容 |
ctrl + x --> ctrl + n | 通过文件的内容文字作为关键字,予以不全 |
ctrl + x --> ctrl + f | 以当前目录内的文件名作为关键字, 予以不全 |
ctrl + x --> ctrl + o | 以扩展名作为语法补全, 以vim内置关键词, 予以不全 |
文件要用相应的后缀。
vim的一些设置
可以新建个.vimrc文件, 用来放vim的一些配置
vim ~/.vimrc 新建个文件(set前有没有: 都可以)
set nu " 设置行号, 前面的的引号是注释
set bg=dark
。。。。
:set nu :set nonu | 就是加不加行号 |
:set hlsearch :set nohlsearch | hlsearch 就是高亮查找, 查找字符是不是设置成高亮 |
:set autoindent :set noautoindent | 是否自动缩进 |
:set backup | 是否自动发备份 |
:set ruler | 显不显示状态栏说明 光标的位置之类的 |
:set showmode | 显不显示 --insert-- 之类的说明 |
:set backspace=(012) | 这个设置为2, 可以删除任意值,01时既可以删除刚刚输入的字符, 无法删除已经存在的字符 |
:set all | 显示目前所有的环境参数 |
:set | 显示与默认参数不同的参数, 就是用户改了哪些参数 |
:syntax on :syntax off | 是否依据程序相关语法显示不同颜色 |
:set bg=dark :set bg=light | 不多说了 |
以上です。感觉敲了很久