vim的使用之摘抄篇
vim的三种基本模式:
1.一般指令模式(command mode)
2.编辑模式(insert mode)
3.指令列命令模式(command-line mode)
基本按键使用:
| h 或 向左方向键() | 游标向左移动一个字位 |
| j 或 向下方向键() | 游标向下移动一个字位 |
| k 或 向上方向键() | 游标向上移动一个字位 |
| l 或 向右方向键() | 游标向右移动一个字位 |
|
多次移动则可以使用“30j” 或 “30下方向键”
|
|
| [Ctrl] + [f] | 屏幕 [向下] 移动一页,相当于 [Page Down]按键 |
| [Ctrl] + [b] | 屏幕 [向上] 移动一页,相当于 [Page Up]按键 |
| [Ctrl] + [d] | 屏幕 [向下] 移动半页 |
| [Ctrl] + [u] | 屏幕 [向上] 移动半页 |
| + | 游标移动到非空白字元的下一列 |
| - | 游标移动到非空白字元的上一列 |
| n<space> | n表示数字,20+space 游标向右移动n个字位 |
| 0 或 功能键 [Home] | 数字0, 移动到这一列的最前面字元 |
| $ 或 功能键 [End] | 移动到这一列的最后字元处 |
| H | 游标移动到屏幕的最上方那一列的第一个字元 |
| M | 游标移动到屏幕的中央那一列的第一个字元 |
| L | 游标移动到屏幕的最下方那一列的第一个字元 |
| G | 移动到该档案的最后一列 |
| nG | n位数字,移动到该档案的第n列,(可配合: set nu) |
| gg | 移动到该档案的第一列,相当于1G |
| n<Enter> | n位数字,游标向下移动n列 |
| 搜寻取代 | |
| /word |
向游标之下寻找一个名称为word的字串,例如搜 nbook字串, 则输入 /nbook |
| ?word | 向游标之上寻找一个字串名称为word 的字串 |
| n | 代表[重复前一个搜寻的动作] |
| N |
与 n 相反,为[反向]进行前一个搜寻动作,例如 /nbook之后, 按下 N 则表示 [向上] 搜寻 nbook |
| n1, n2s/word1/word2/g |
n1与n2为数字,在第n1与n2列之间寻找word1这个字串,并将字串取代为word2 例: 在100到200列之间搜寻 nbook 并取代为 NBOOK 100,200s/nbook/NBOOK/g |
| :1,$s/word1/word2/g | 从第一列到最后一列寻找word1字串,并将该字串取代为word2 |
| :1,$s/word1/word2/gc |
从第一列到最后一列寻找word1字串,并将该字串取代为word2, 且在取代前显示提示字元 给使用者确认是否需要取代 |
| 删除、复制与粘贴 | |
| x,X |
在一列字当中,x为向后删除一个字元(相当于 [del] 按键),X为向前删除一个字元 (相当于 [backspace] 即倒退键 ) |
| nx | n为数字,连续向后删除n个字元, 例如 [10x] |
| dd | 删除游标所在的那一整列 |
| ndd | n 为数字,删除游标所在的向下n列,例如 |
| d1G | 删除游标所在到第一列的所有资料 |
| dG | 删除游标所在到最后一列的所有资料 |
| d$ | 删除游标所在处,到该列的最后一个字元 |
| d0 | 删除游标所在处,到该列的最前面一个字元 |
| yy | 复制游标所在的那一列 |
| nyy | n 为数字,复制游标所在的向下 n 列 |
| y1G | 复制游标所在列到第一列的所有资料 |
| yG | 复制游标所在列到最后一列的所有资料 |
| y0 | 复制游标所在的那个字元到该列行首的所有资料 |
| y$ | 复制游标所在的那个资源到该列行尾的所有资料 |
| p,P | p 为将已复制的资料在游标下一列贴上,P 则为在游标上一列 |
| J | 将游标所在列与下一列的资料结合成同一列 |
| c | 重复删除多个资料,例如 向下删除10列 ,[10cj] |
| u | 复原前一个动作 |
| 指令列模式的存储、离开指令 | |
| :w | 将编辑的资料写入硬盘 |
| :w! | 若文档属性为“只读”时,强制写入该文档。取决于文档的权限 |
| :q | 退出vi |
| :q! | 强制退出(修改过文档但又不想保存时) |
| :wq | 存储后退出,若为 “:wq!” 则为强制存储后退出 |
| ZZ | 大写,若文档没有更动,则不存储退出,若已更改,则存储后离开 |
| :w [filename] | 将编辑的资料存储成另一个文档 |
| :r [filename] | 在编辑的资料中,读入另一个文档的资料。即将[filename]文档的内容加到游标所在后面 |
| :n1,n2 w [filename] | 将n1到n2的内容存储成filename 这个文档 |
| :! command | 暂时离开vi 到指令列模式下执行command的显示结果,e.g 【:!command】即可在vi当中常看/home 底下以 ls 输出的文档内容 |
| :set nu | 显示行号,设定之后,会在妹一列的字首显示该列的行号 |
| :set nonu | 与 set nu 相反,为取消行号 |
| 区块选择按键 | |
| v | 字元选择,将游标经过的地方反白选择 |
| V | 列选择,将游标经过该的列反白选择 |
| [Ctrl] + v | 区块选择,可以用长方形的方式选择资料 |
| y | 将泛白的地方复制起来 |
| d | 将泛白的地方删除掉 |
| p | 将刚刚复制的区块,在游标所在处粘贴 |
| 多文档编辑按键 | |
| :n | 编辑下一个文档 |
| :N | 编辑上一个文档 |
| :files | 列出目前这个vim所开启的文档 |
| 多视窗情况下按键功能 | |
| :sp [filename] | 开启一个新视窗,若果有加 filename, 表示在新视窗开启一个新文档,否则表示两个视窗为同一个文档内容 |
|
[ctrl] + w + j [ctrl] + w + 向下方向键 |
按键按法:先按下[ctrl]不放,再按下w后放开所有的按键,然后在按下 j (或向下方向键),则游标可移动到下方的视窗 |
|
[ctrl] + w + k [ctrl] + w + 向上方向键 |
同上,不过游标移动到上方的视窗 |
| [ctrl] + w + q | 与 :q 相同,结束退出vi |

浙公网安备 33010602011771号