一三九、vim使用介绍
            
            
                
        
        
        
                
                    
                    键盘图
 

 
模式切换
 

 
移动光标
 
| 命令 | 说明 | 
|---|
| shift 6() | 至本行第一个非空字符 | 
| shift 4($) | 至本行末尾 | 
| w | 至下一个单词、标点开头 | 
| W | 至下一个单词开头 | 
| b | 至上一个单词、标点开头 | 
| B | 至上一个单词开头 | 
| ctrl + b | 上翻一页 | 
| ctrl + f | 下翻一页 | 
| ctrl + d | 向下翻半页 此比较有用 | 
| ctrl + u | 向上翻半页 此比较有用 | 
| gg | 文件开头 | 
| shift + g | 文件末尾 | 
| num + shift + g | 跳到第num行 | 
| “ | 两个单引号 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置. | 
| ‘. | 一单一点 此命令相当好使, 它移动光标到上一次的修改行. | 
| `. | 一倒引一点 此命令相当强大, 它移动光标到上一次的修改点. | 
进入插入模式
 
| 命令 | 说明 | 
|---|
| i, I 进入输入模式(Insert mode): | i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用) | 
| a, A 进入输入模式(Insert mode): | a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用) | 
| o, O 进入输入模式(Insert mode): | 这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行!(常用) | 
| r, R 进入取代模式(Replace mode): | r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用) | 
| [Esc] 退出编辑模式,回到一般模式中(常用) |  | 
文本编辑(删除、复制、剪切、粘贴、撤销)
 
| 命令 | 说明 | 
|---|
| x | 删除当前字符 | 
| 3x | 删除当前字符和之后的两个字符 | 
| dd | 删除(剪切)当前那行 | 
| 5dd | 删除(剪切)当前那行和后面的4行 | 
| dw | 当前字符到下一个字符开始 | 
| d$ | 删除(剪切)当前字符到行尾 | 
| d0 | 删除(剪切)当前字符到行首 | 
| d^ | 删除(剪切)当前字符到下一个非空字符 | 
| dG | 删除(剪切)当前行到文件末尾 | 
| d20G | 删除(剪切)当前行到20行 | 
| yy | 复制当前那行,用法同dd | 
| p | 粘贴到光标之后 | 
| P | 粘贴到光标之前 | 
| u | 取消上一次操作 | 
| ctrl +r | 恢复上一次操作 | 
| j | 合并当前行和后面的一行,用法同dd | 
查找替换
 
| 命令 | 说明 | 
|---|
| /key(?key) | 向下(上)查找key | 
| :%s/oldkey/newkey/gc | 在全局范围内用newkey替换oldkey | 
| : | 进入底行模式 | 
| % | 范围%代表全局,1,3代表1到3行 | 
| s | 替换操作 | 
| /oldkey/newkey/ | 用新词替换老词 | 
| g | 代表行内全局 | 
编辑多个文件
 
| 命令 | 说明 | 
|---|
| vim file1 file2 … | 编辑多个文件 | 
| :n | 切换到下一个文件 | 
| :N | 切换到上一个文件 | 
| :buffer 1 | 切换到第一个文件 | 
| :e file | 新编辑一个文件 | 
| :r file | 在当前文件中插入一个文件 | 
| :w file | 将文件保存为一个文件 | 
技巧
 
| 命令 | 说明 | 
|---|
| r | 替换模式,替换当前光标所在位置的一个字符。虽然你同样可以i进入插入模式,然后删掉那个字符,再输入需要的字符,但这种操作是鼠标流思维方式。替换是一个可重复操作,多用没坏处。 | 
| cw | change word可以删除从当前位置到一个单词的结尾,并进入插入模式。这种操作常用于修改一个变量。比如对于:int count=0;希望把count改成cnt,那么当光标位于c字符处的时候,按cw可直接删除count,并进入插入模式。然后直接继续输入cnt即可。 | 
| caw | change a word可以删除当前光标所在位置的单词。对于int count=0;的例子,如果此时光标在count中间某处,比如u处,直接键入caw可以达到同样的效果。所以caw更强大一些。 | 
| c$、c^ | 举一反三,可以猜到c$是从当前位置删除到行尾,并进入插入模式。 | 
| ci” | change inside 可以用于修改当前位置附近,在相同配对的中的内容。比如对于const char *str=hello world;。当在双引号中间的任意位置键入ci"可以直接清空字符串,并继续输入新的希望的字符串。 | 
| ci(、ci[ | 举一反三change inside ( change inside [。 | 
| cit | 这个比较特殊,可以直接编辑匹配的xml标签中的内容!经常编写html的童鞋可以熟悉一下。 | 
| yi" | yank inside 猜猜是啥意思?类似ci只是把编辑操作编程复制操作,因为y是复制!是不是很强大。 | 
| ya" | yank around “ 复制整个字符串,包括双引号。 | 
                 
                
                
         
        
             
            
            
              
                本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376038.html
              
              如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!