VIM使用

移动命令

按键 说明
h
l 右(小写L)
j
k
w 移动到下一个单词
b 移动到上一个单词

进入插入模式

命令 说明
i 在当前光标处进行编辑
I 在行首插入
A 在行末插入
a 在光标后插入编辑
o 在当前行后插入一个新行
O 在当前行前插入一个新行
cw 替换从光标所在位置后到一个单词结尾的字符

命令行模式退出

命令 说明
:q! 强制退出。不保存
:q 退出
:wq! 强制保存并退出
:w <文件路径> 另存为
:saveas 文件路径 另存为
:x 保存并退出 
:wq 保存并退出

普通模式

输入: 进入命令模式。wq 保存并退出
也能够用shift+zz 取代 (:wq)保存退出

普通模式下删除

命令 说明
x 删除游标所在的字符
X 删除游标所在前一个字符
Delete x
dd 删除整行
dw 删除一个单词(不适用中文)
d$D 删除至行尾
d^ 删除至行首
dG 删除到文档结尾处
d1G 删至文档首部

能够在命令前加数字。比方10dd 删除10行


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

反复运行上次命令

普通模式下 . 就能够
比方。我上面 10dd 删除了10行。按点(.)继续删除10行,一直按则一直反复运行;
比方,我文本中插入了welcome ,然后按.点(.)会再次插入一个welcome,按多少次则 插入多少个;
点(.) 前面也能够用数字。10. 则反复运行上次命令10次;

光标的高速跳转

命令 说明
nG(n Shift+g) 游标移动到第 n 行(假设默认没有显示行号,请先进入命令模式。输入:set
nu
以显示行号)
gg 游标移动到到第一行
G(Shift+g) 到最后一行

使用ctrl+o 能够高速跳转到上次(跳转前)位置

命令 说明
w 到下一个单词的开头
e 到下一个单词的结尾
b 到前一个单词的开头
ge 到前一个单词的结尾
0^ 到行头
$ 到行尾
f<字母> 向后搜索<字母>并跳转到第一个匹配的位置(很有用)
F<字母> 向前搜索<字母>并跳转到第一个匹配的位置
t<字母> 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不经常使用)
T<字母> 向前搜索<字母>并跳转到第一个匹配位置之前的一个字母(不经常使用)

复制和粘贴

普通模式下y 是复制 p是粘贴

普通模式中,yy复制游标所在的整行(3yy表示复制3行)
普通模式中。y^ 复制至行首。或y0。不含光标所在处字符。
普通模式中,y$ 复制至行尾。含光所在处字符。 普通模式中,yw 复制一个单词。
普通模式中,y2w 复制两个单词。
普通模式中。yG 复制至文本末。 普通模式中。y1G 复制至文本开头。 普通模式中,p(小写)代表粘贴至光标后(下)
普通模式中,P(大写)代表粘贴至光标前(上)

剪贴

dd删除命令就是剪切,你每次dd删除文档内容后,便能够使用p来粘贴,也这一点能够让我们实现一个非常爽快的功能——交换上下行:

ddp,就这么简单,即实现了高速交换光标所在行与它以下的行

替换和撤销(undo)

命令 说明
r+<待替换字母> 将游标所在字母替换为指定字母
R 连续替换,直到按下Esc
cc 替换整行,即删除游标所在行,并进入插入模式
cw 替换一个单词,即删除一个单词,并进入插入模式
C(大写) 替换游标以后至行末
~ 反转游标所在字母大写和小写
u{n} 撤销一次或n次操作
U(大写) 撤销当前行的全部改动
Ctrl+r redo。即撤销undo的操作

高速缩进

普通模式下输入>> 整行将向右缩进(使用。用于格式化代码超爽)
普通模式下输入<< 整行向左回退
普通模式下输入:进入命令行模式下对shiftwidth值进行设置能够控制缩进和回退的字符数

vim key_map 附上








VIM经常使用操作的更多相关文章

  1. vim 模式基础操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 虽然Emacs已经可以完成大部分的编辑操作,但有时候为了方便也会用到vim.所以记录了 ...

  2. (转)vim(vi)常用操作及记忆方法

    vim(vi)常用操作及记忆方法 原文:https://www.cnblogs.com/doseoer/p/6241443.html vi(vim)可以说是linux中用得最多的工具了,不管你配置服务 ...

  3. 搞定vim的窗口操作

    最近在给学生演示数据结构代码时,发现用一般的方法总会有不方便,如果使用ide又觉得太浪费了,后来觉得用vim就够了,使用buffer总会需要页面调来跳出,学生看起来容易迷糊.所以就研究了下vim的窗口 ...

  4. vim(vi)常用操作及记忆方法

    vi(vim)可以说是linux中用得最多的工具了,不管你配置服务也好,写脚本也好,总会用到它.但是,vim作为一个“纯字符”模式下的工具,它的操作和WINDOWS中的文本编辑工具相比多少有些复杂.这 ...

  5. VIM的一些操作小技巧

    vim的设计理念是:组合. 命令的组合,模式的组合,     普通模式 左: h 上:k 下:j 右 : l   i : 当前光标处插入 I: 到光标所在行的行首进入插入模式 a: 在当前光标的后一位 ...

  6. 超级编辑器--VIM的常见操作

    如下,都是我常用的 删除单词:  d + w 关闭vim窗口:   :q   或者 shift + zz 全部向左移: shift + v  --->  shift + <   ---&g ...

  7. Vimrc配置以及Vim的常用操作

    """"""""""""""""&quo ...

  8. vim下高级操作以及文本替换命令

    关于vim的一些基本和高级的操作 可参考下面的链接. http://coolshell.cn/articles/5426.html 在使用vim编辑文本的时候涉及到批量替换文本内容 :s/vivian ...

  9. 利用xshell密钥管理服务器远程登录+VIM dd命令操作之伤之再伤

    1.打开Xshell界面,中文界面方便操作,菜单栏:工具——新建用户密钥生成向导 2.密钥类型选择RSA,密钥长度选择2048位,单击下一步继续: 3.很快生成公钥对,单击下一步继续: 4.密钥名称可 ...

  10. vim 基本编辑操作

    一.光标跳转到指定行 1.在命令模式下,跳转到指定行  :n   (n为行号) 2.命令行加参数 vim +n fileName 3.命令行加参数 vim + fileName 光标移至文件底部 4. ...

随机推荐

  1. 基于Landmark的人脸对齐以及裁剪方法

    利用Landmarks进行人脸对齐裁剪是人脸检测中重要的一个步骤.效果如下图所示: 基本思路为: a.人脸检测 人脸的检测不必多说了,基本Cascade的方式已经很不错了,或者用基于HOG/FHOG的 ...

  2. IOS webView学习

    本文简单介绍下在IOS中,webView的基本用法,也顺便强化下自己的基础知识----天明少羽爬楼梯 一.加载外部HTML 显示webView 报错:NSURLSession/NSURLConnect ...

  3. CLR基础,CLR运行过程,使用dos命令创建、编译、运行C#文件,查看IL代码

    CLR是Common Language Runtime的缩写,是.NET程序集或可执行程序运行的一个虚拟环境.CLR用于管理托管代码,但是它本身是由非托管代码编写的,并不是一个包含了托管代码的程序集, ...

  4. 使用结构struct作为Dictionary<TKey,TValue>的键

    我们经常用简单数据类型,比如int作为泛型Dictionary<TKey,TValue>的key,但有时候我们希望自定义数据类型作为Dictionary<TKey,TValue> ...

  5. SimpleDateFormat in Java is not Thread-Safe Use Carefully

    SimpleDateFormat in Java  very common and used to format Date to String and parse String into Date i ...

  6. 做iphone5适配时,一定要做好图片大小的调整。

  7. 深度学习阅读列表 Deep Learning Reading List

    Reading List List of reading lists and survey papers: Books Deep Learning, Yoshua Bengio, Ian Goodfe ...

  8. html嵌套iframe怎样实现等iframe页面载入完进行下一步调用

    </pre>假设想在你的html里面显示一张图片.或者显示一个报表,常常会在里面嵌套iframe,当我们点查询报表时.在报表显示过程中,我们想做个遮罩层,提示等待...可是报表显示出来后. ...

  9. scala编程第16章学习笔记(4)——List对象的方法

    通过元素创建列表:List.apply List(1, 2, 3) 等价于List.apply(1, 2, 3): scala> List.apply(1, 2, 3) res0: List[I ...

  10. 运行时类型识别RTTI

    1.RTTI的工作原理 例1. 用Class加载对象示例. package RTTI; public class Candy { static{ System.out.println("Lo ...