| 按键 | 说明 |
|---|
| 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