按键 | 说明 |
---|
h | 光标左移 |
j | 光标下移 |
k | 光标上移 |
l | 光标右移 |
都可加数字表示位移量,比如10h表示向前移动10个字符 | |
ctrl + f | 向下移动一页 |
ctrl + b | 向上移动一页 |
ctrl + d | 向下移动半页 |
ctrl + u | 向上移动半页 |
+加号 | 光标移动到非空格的下一行 |
-减号 | 光标移动到非空格的上一行 |
n | 右移n个字符 |
0 | 移动到本行最前面 |
$ | 移动到本行最后面 |
H | 屏幕最上方那行的第一个字符 |
M | 屏幕中间那行的第一个字符 |
L | 屏幕最下方那行的第一个字符 |
G | 文件最后一行 |
nG | 文件第n行 |
gg | 文件第一行 |
N回车 | 向下移动N行 |
/word | 向下查找word |
?word | 向上查找word |
:n1,n2s/word1/word2/g | 替换第n1行到n2行之间的word1为word2 |
:1,$s/word1/word2/g | 替换全部 |
:1,$s/word1/word2/gc | 替换全部,需要确认 |
x,X | x向后删除,X向前删除 |
nx | 删除n个字符 |
dd | 删除本行 |
ndd | 删除光标所在行向下的n行 |
d1G | 删除光标所在到第1行的数据 |
dG | 删除光标所在到最后1行的数据 |
d$ | 删除光标所在到该行的最后一个字符 |
d0 | 删除光标所在到该行的第一个字符 |
yy | 复制一行 |
nyy | |
y1G | |
yG | |
y0 | |
y$ | |
p,P | 粘贴 |
J | 将光标所在行和下一行的数据结合成同一行 |
c | 重复删除多个数据,例如10cj表示向下删除10行 |
u | 复原前一个操作 |
ctrl r | 重做上一个操作 |
. | 重复前一个操作 |
i,I | i为从光标所在开始插入,I为从本行第一个非空格出开始插入 |
a,A | a为从光标所在的下一个字符开始插入,A为从光标所在的最后一个字符开始插入 |
o,O | o为下一行开始插入,O为上一行开始插入 |
r,R | r只替换光标所在的那个字符一次;R会一直替换,直到按下ESC |
:w | |
:w! | |
:q | |
:q! | |
:wq | |
:wq! | |
ZZ | |
:w [filename] | 另存 |
:r [filename] | 将filename文件读入光标所在行 |
:n1,n2,w [filename] | 将n1到n2行保存成文件filename |
! command | 暂时离开vi到命令行模式执行command |
:set nu | 显示行号 |
:set nonu | 取消行号 |
按键 | 说明 |
---|
v | 字符选择,将光标经过的地方反白 |
V | 行选择,将光标经过的行反白 |
ctrl v | 块选择 |
y | 复制 |
d | 删除 |
- 多文件编辑
vim file1 file2 file3…
按键 | 说明 |
---|
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前打开的所有文件 |
- 多窗口功能
在命令行模式输入:sp{filename}即可以在新的分割窗口打开文件filename,filename为空,表示在新的分割窗口打开当前文件
按键 | 说明 |
---|
:sp{filename} | 打开新窗口 |
ctrl w j(或向下箭头) | 同时按住ctrl和w,松开后再按j,移动到下一个窗口 |
ctrl w k(或向上箭头) | 上一个窗口 |
ctrl w q | 关闭当前窗口 |
命令 | 功能 |
---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
:set hlsearch | 高亮查找到的单词 |
:set nohlsearch | |
:set autoindent | 自动缩排 |
:set noautoindene | |
:set backup | 自动保存备份 |
:set ruler | 显示右下角状态栏 |
:set showmode | 显示左下角状态栏 |
:set backspace=(012) | 表示编辑模式下可以删除的字符,2表示任何字符都可以删除,0或1表示仅能删除新输入的字符 |
:set all | 显示所有设置 |
:set | 显示与系统默认不一样的设置 |
:syntax on | 语法高亮 |
:syntax off | |
:set bg=dark | |
:set bg=light | 设置颜色色调 |
dos2UNIX [-kn] file [newfile]
UNIX2dos [-kn] file [newfile]
iconv --list
iconv -f oldcode -t newcode filename [-o newfile]
set autoindent
set hlsearch
set ruler
set showmode
syntax on
set nu
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal g'\"" | endif
endif