文本插入:I i A o O a
:set ic不区分大小写
:set noic
dw删除一个单词,#dw…
gg第一行G最后一行 nG :n go to number n
u –undo
r R <ESC> 退出替换
x
nx
:n1,n2d
nyy nY
dd ndd
D/删除光标所在到行尾
p 粘贴
/string 搜索 --find n从前往后查找 N 从后往前查找
:%s/old /new /g 全文替换
:n1,n2s/XX/XX/g 替换文件,按照指定范围
:r + filename 导入文件
:!+命令 编写文件的时候可以执行命令
:r !Date 执行命令结果导入文件
Map 快捷键 触发命令
:map ^p(ctrl+P) I#<esc> 定义快捷键
//Ctrl+v Ctrl+p ctrl+v+p =^p
ZZ=:wq 保存退出
:wq!强行保存退出
连续注释:
:n1,n2s/^/#/g 添加# ^表示行首!
:n1,n2/^#//g 把#替换为空
:n1,n2/^/\/\//g 转义符
替换:ab sam sam@163.com unab sam
hjkl 光标移动!
行首 0 I
行尾 $
H M L 屏幕的high middle low
rm =rm -i
\rm 使用本意 \转义符
~ home directory
~/.vimrc
/root/.vimrc 更改vi配置文件 好处多多啊!启动后自动运行的代码放这里。
移动光标
| 命令 | 功能 |
| h | 光标左移 |
| l(或空格键) | 光标右移 |
| k(或[Ctrl+p]) | 光标上移 |
| j(或[Ctrl+n]) | 光标下移 |
| [Ctrl+f] | 向前翻页 |
| [Ctrl+b] | 向后翻页 |
| [Ctrl+d] | 向前翻半页 |
| [Ctrl+u] | 向后翻半页 |
| 1G | 跳到文件首 |
| 40G | 跳到第40行 |
| G | 跳到文件尾 |
| [Ctrl+g] | 显示当前行号及文件的百分比 |
| :set number | 显示所有带行号的行 |
在一行内移动光标
B、E和W命令的作用与b、e和w的作用一样,只是后者忽略了标点符号。
| 命令 | 功能 |
| b | 向后移动到单词首 |
| e | 向前移动到单词尾 |
| w | 向前移动到单词首 |
| 0或| | 移动到行首 |
| 30| | 移动到第30列 |
| ^ | 移动到本行的第一个单词的首字符 |
| $ | 移动到行尾 |
插入文本
| 命令 | 功能 |
| i | 在光标的左侧插入字符 |
| 20i-[Esc] | 插入20个连字符 |
| I | 在行首插入字符 |
| [Ctrl+v][Ctrl+b] | 插入[Ctrl+b]字符 |
| [Ctrl+v][Esc] | 插入[Esc]字符 |
| a | 在光标的右侧添加文本 |
| A | 在行尾添加文本 |
| o | 在当前行下面插入一空行 |
| O | 在当前行上面插入一空行 |
| :set showmode | 当vi处在输入模式下时显示提示信息 |
| :set sm | 即时显示配对的)或} |
| :set ts=n | 把制表符设置为n(默认为8) |
| :set ai | 下一行从前一行的缩进位置开始 |
删除和移动文本
| 命令 | 功能 |
| x | 删除光标所在的字符 |
| 6x | 删除光标位置的字符以及右侧的5个字符 |
| X | 删除前一个字符 |
| dd | 删除当前行 |
| 4dd | 删除4行 |
| 64dd | 删除64行 |
| dw | 删除一个单词 |
| d0 | 删除到行首 |
| d$ | 删除到行尾 |
| d | 删除一个区域(只用于vim) |
| p | 把被剪切的文本粘贴到下面(整行)或右侧(部分行) |
| P | 把被剪切的文本粘贴到上面(整行)或左侧(部分行) |
| "add | 把当前行粘贴到缓冲区a里 |
| "ap | 把缓冲区a里的内容粘贴到当前位置 |
| J | 把当前行于下一行合并为一行 |
| xp | 调换两个字符的位置 |
修改文本
| 命令 | 功能 |
| rch | 把光标位置的字符替换为ch |
| R | 替换光标右边的文本 |
| s | 把光标所在的字符替换为任意个字符 |
| S | 替换整行内容 |
| cw | 修改一个单词 |
| c | 修改区域里的文本(vim) |
| ~ | 改变所扫描的或区域里的字母的大小写 |
| !tr'[a-z]''[A-Z]' | 把区域里的字母转换为大写(vim) |
| !tr'[A-Z]''[a-z]' | 把区域里的字母转换为小写(vim) |
复制文本
| 命令 | 功能 |
| yy | 复制当前行 |
| 6yy | 复制六行 |
| yw | 复制单词 |
| y | 复制区域(vim) |
| p | 把复制的文本粘贴到右边或下面 |
| P | 把复制的文本粘贴到左边或上面 |
| "ayy | 把当前行复制到缓冲区a里 |
| "ap | 恢复缓冲区a里的内容 |
启动编辑器
| 命令 | 功能 |
| vi +100 foo | 打开文件foo并把光标定位在100行 |
| vi +/pat foo | 打开文件foo并把光标定位在pat第一次出现的行 |
| vi +foo | 打开文件foo,把光标定位在文件尾 |
| vi foo1 foo2 ... | 打开文件foo1,用n切换到foo2等 |
| vi -r foo | 把交换文件里的内容恢复到缓冲区里 |
| vi -R foo | 一只读模式打开foo文件 |
保存与退出
| 命令 | 功能 |
| :w | 保存文件并继续编辑 |
| :w bar | 同微软Windows操作系统中的“另存为……” |
| :w! bar | 同上,但是覆盖现存的文件bar |
| :n1,n2w foo | 把n1到n2之间的行保存到文件foo |
| :n1,n2w>>foo | 把n1到n2之间的行添加到foo文件尾 |
| :.w foo | 把当前行保存到文件foo |
| :$w foo | 把最后一行保存到文件foo |
| :x | 保存并退出编辑器 |
| :wq | 同上 |
| :q | 如果文件的内容没有变化则退出编辑器 |
| :q! | 放弃修改并退出编辑器 |
826

被折叠的 条评论
为什么被折叠?



