Vim 和 Emac 都是利器啊,前段时间决定熟悉一套跨平台的编辑器,以便在 Win,Mac,Ubuntu 下都有相同的编辑体验。

于是尝试了一下 Vim,使用了一段时间,确实比 UE 之类的要高效。Win 平台下有 gVim, Mac 下也有 MacVim

Vim 的学习曲线确实有点陡峭,刚开始不是那么容易习惯的。查看帮助文档是必不可少的,其在线中文文档链接如下:

Vim 在线中文文档:http://vimcdoc.sourceforge.net/doc/help.html

这个文档超级大而全,方便查阅,如果想入门试试 Vim 的话,不太适合,下面我整理了一些方便入门的常用快捷键。

===========================================================

模式操作

===========================================================

Vim具有五种基本模式,默认是普通模式,在普通模式下是无法进行编辑的,需要进入插入模式。

(Window 下用记事本打开一个 txt, 默认就是插入模式,所以就可以直接编辑,Vim 不是这样的!!)

===========================================================

普通模式(normal mode)

插入模式(insert mode)

命令模式(command mode)

可视模式(visual mode)

替换模式(replace mode)

其他模式下要回到普通模式:

===========================================================

Esc

Ctrl + c

Ctrl + [

进入插入模式

===========================================================

i insert 在光标前插入

I insert 在当前行的第一个非空白字符之前插入

a append 在光标后插入

A append 将输入点移动到在当前行的行尾来输入文本

o 在当前行下方新启一行,并进入插入模式。

O 在当前行上方新启一行,并进入插入模式。

s substitute 用来删除当前光标下的字符,然后进入到插入模式

cw change word 用的较少,和 s 相似,只不过删除的单位是单词。

首先删除由光标(包括光标)开始的一个单词,然后进入插入模式,

进入命令模式:

===========================================================

:, /

: 之后,使用方向键可以调出历史命令。甚至输入:s之后,

会对历史命令进行过滤,只调出以s开头的历史命令。

:help command 查看帮助文档

:: 查看命令行模式的帮助

进入可视模式:该模式下方便对文本进行选择

===========================================================

v, V, Ctrl+v

v visual,可视,以字符为单位移动

V 可视,以行为单位移动

Ctrl + v 可视,以块为单位移动

可视块模式应用:添加多行的 // 注释

首先将光标移动到要该代码块第一行的行首字母上,进入可视块模式,

然后移动光标到该代码块的最后一行的行首字母上,这时会高亮显示一列。

之后键入 I,注意不是i,此时信息区显示的是插入模式了,

然后键入注释符"//",将第一行注释掉,而其他行没有变化。

不用着急,最后键入Esc退回到普通模式。

这时其他被选中的行的前面都添加了注释符,从而都被注释掉了

进入替换模式

===========================================================

r, R

r replace,该键只是用于替换光标所在的单个字符而已。

R 持续替换直至退出 R 模式,在该模式下可以按照 backspace 恢复

===========================================================

关于模式的更多说明请查看Vim帮助文档,使用命令:

:help mode-switching

===========================================================

文件操作

===========================================================

分割窗口

===========================================================

:sp vim.txt split,水平分割窗口

:vs vim.txt vertical split,垂直地分割窗口可视块模式来完成了。

窗口切换

===========================================================

Ctrl + w + [h, j, k, l]

Ctrl 在Vim中"^"一般表示Ctrl按键

w window

h,j,k,l 就是上下左右四个方向

关闭窗口

===========================================================

Ctrl + w + [c] 关闭当前窗口

Ctrl + w + [o] 关闭其他窗口

保存文件

===========================================================

:w write,保存当前文件

:wa writeall,保存所有文件

退出文件

===========================================================

:q quit,关闭当前窗口或者当前标签页

:wq write + quit,先保存再关闭

===========================================================

导航以及跳转

===========================================================

Vim中的移动可以分为两类:导航以及跳转。

导航是小范围的移动;而跳转是大范围且并不确定执行后光标位置的移动。

Vim帮助文档里面将这类操作叫做motion操作。可查看帮助:

:help motion

导航

===========================================================

h, j, k, l, w, e, b, f, F, t, ,, ;

h, j, k, l 上下左右四个方向移动

w word,以单词为单位正向移动,光标停在第一个字母上

e end,以单词为单位正向移动,光标停在最后一个字母上

b back,以单词为单位反向移动,光标停在第一个字母上

f + key forward,移动到该行的下一个出现字符(key)的位置,

然后可以按下 ; 正向循环移动或者 , 反向循环移动

F + key 用法与 f 相同,只不过是反向移动

t till,效果与 f 类似,只不过 f 会将光标放置在目标字符上,

而 t 是将光标放置在目标字符的前一个字符上。

跳转

===========================================================

^, 0, $, %, [[, ]], gg, G, L, H, M, m, ', :[number]

^ 移动到本行第一个非空白字符处

0 移动到行首(参考命令 I)

$ 移动到行尾(参考命令 A)

% 在本行中正向查找或调整的配对字符(([{}])),

]] 组合键,在文本中t跳转到下一个位于行首的'{'字符

[[ 类似于 ]],只不过是反向

gg 跳转到整个文本的第一行

G 跳转到整个文本的最后一行

H high,跳转到当前屏幕显示文本范围内的第一行

L low,跳转到当前屏幕显示文本范围内的最后一行

M middle,将光标移动到屏幕显示文本范围的中间

m 组合键,与 Vim 的寄存器有关(请看文档 :help registers)

m - mark,输入 m 之后再输入寄存器序号(a - z, A - Z),

就将当前光标位置信息放到寄存器中保持,相当于设置了书签。

' 组合键,后跟寄存器序号,跳转到 m 设置的书签处

:[number] 是命令模式下的用法,跳转到指定行,number 为行数

翻页

===========================================================

Ctrl + f, Ctrl + b, Ctrl + d, Ctrl + u

Ctrl + f forward,相当于 PageDown

Ctrl + b back,相当于 PageUp

Ctrl + d down,正向翻半页

Ctrl + u up,反向翻半页

===========================================================

编辑操作

===========================================================

删除

===========================================================

x, d + [跳转/移动]

x 剪切,内容保存在寄存器 x 中

d + 跳转/移动 delete,组合键,删除并经内容保存到寄存器 x 中

dw delete word,正向删除单词

d0 反向删除到行首

d$ 正向删除到行尾

dd 删除整行

d^ 删除之本行第一个非空白字符处

移动

===========================================================

x, y, yy, Y, p, P, "+y, "+p

移动文本其实是一个组合的操作:

首先选择要移动的文本;

然后剪切或者复制该文本;

最后粘帖该文本。

x 剪切

y yank,复制,内容保存在寄存器 x 中

Y, yy 复制光标所在行

p paste,将寄存器 x 中保存的文本取出并粘贴在光标位置之后

P 同 p, 只是粘贴在光标位置之前

" + y 复制文本到系统复制粘帖板(注意不是 Vim 的寄存器 x 了)

" + p 是从系统复制粘帖板取出文本进行粘帖操作。

撤销重做

===========================================================

u, Ctrl + r

u undo,撤销

Ctrl + r redo,重做

查找

===========================================================

/ + key

/ 后跟要查找的字符串,然后输入 n 循环查找。查找字符串支持正则匹配式。

原文链接罗朝辉(http://blog.csdn.net/kesalin

Vim 使用入门快捷键的更多相关文章

  1. vim分屏快捷键使用/增大/减小字体使用

    问题描述: vim分屏快捷键使用 问题解决:         (1)vim 分屏快捷键           (2)vim高度改变          (3)vim中增加和减少字体大小  使用快捷键Ctr ...

  2. vim技巧:折叠快捷键

    vim技巧:折叠快捷键 以前用的挺熟的,一段时间不用了,快捷键又忘了,不得不重新再看手册,今天专门整理一下,以后查找起来也比较方便. zc 折叠,只折叠最外层的折叠zC 对所在范围内所有嵌套的折叠点进 ...

  3. vim+makefile入门编辑,编译,差错实例

    vim+makefile入门编辑,编译,差错实例 vim makefile 编译 编写代码,一般在vim中编辑完后,输入:wq,在命令行下输入g++ hello.cc -o hello ,出现问题,打 ...

  4. vim使用入门设置

    分为以下四步. 1,安装vim 2,安装git yum -y install vim git (Fedora/CentOS) /apt-get install vim git (Debian/Ubun ...

  5. Sublime编辑器上的Linux Vim插件常用快捷键

    Sublime编辑器上的 Vim 插件常用快捷键 vim 的设置: 在Reference-> User Settings(首选项--> 设置用户) 选项,点击进入配置文件编辑状态,默认的用 ...

  6. Linux学习之十三-vi和vim编辑器及其快捷键

    vi和vim编辑器及其快捷键 1.vi与vim区别 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方 ...

  7. 转载:Vim 配置入门

    转载:Vim 配置入门 原文地址:http://www.ruanyifeng.com/blog/2018/09/vimrc.html 作者: 阮一峰 Vim 是最重要的编辑器之一,主要有下面几个优点. ...

  8. Linux中vim编辑器 的 快捷键 --- 常用 的 都比较全

    Linux中vim编辑器的功能非常强大,许多常用快捷键用起来非常方便,这里将我学vim入门时学的一些常用的快捷键分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到 ...

  9. Vim新手入门资料和一些Vim实用小技巧

    一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为阿里巴巴高级技术专 ...

随机推荐

  1. java Enum 类型互转

    refer:enum与int.String之间的转换http://www.blogjava.net/wangxinsh55/archive/2012/11/07/390958.html enum< ...

  2. QT编译错误:cannot find file: *.pro

    编译一个之前同事写的QT程序,结果出现了编译错误:cannot find file: *.pro 解决方法:将程序放在英文路径下 尽管出现一些红色的编译信息部门,但是最终还算是编译成功了~

  3. 搭建项目Maven+springMVC+hibernate时,JUnit測试出现报ClassNotFoundException错误的解决

    近期在搭建Maven+springMVC+hibernate项目,正常启动项目时一切正常.但JUNIT測试时出现报ClassNotFoundException错误,经过细致排查发现没有生成class文 ...

  4. mongodb 搭建主从服务器

    mongodb 主从配置比较简单,只需要在启动的时候添加参数(-master.-slave -source IP:PORT). Ubuntu 16.04 系统环境 监听端口分别为:27010.2701 ...

  5. iOS App Extensions

    一.扩展概述 扩展(Extension)是iOS 8中引入的一个非常重要的新特性.扩展让app之间的数据交互成为可能.用户可以在app中使用其他应用提供的功能,而无需离开当前的应用. 在iOS 8系统 ...

  6. RPM常用命令解释

    RPM软件包管理器,英文:RPM Package Manager(原Red Hat Package Manager,现在是一个递归缩写) -i安装rpm包 -u升级rpm包 -q查询已安装的软件信息 ...

  7. 如何在浏览器中简单模拟微信浏览器(仅限于通过User Agent进行判断的页面)

    模拟微信浏览器: .打开360极速 .F12开发者工具 .开发者模式左上方有一个手机样子的图标 点击进入 设备模式‘ .将UA选项中的字符串替换成: Mozilla/ 备注: 替换的字符串是微信浏览器 ...

  8. 【架构师之路】 LVS+Keepalived实现高可用负载均衡

    一.原理        1.概要介绍        如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具有3~5层交换功能,其主要作用是检测web服务器的状态, ...

  9. delphi xe 怎么生成apk

    f9 运行: 让它执行install[如果没有连接到android环境,会提示安装失败]或, 就在bin下面产生一个apk文件了:好像单单build是没法产生的.

  10. Delphi应用程序的调试(三)监视变量

    监视变量(Watching Variables) 当程序停在一个断点处时,用户做些什么呢?通常用户在断点处停下来是要检查变量的值,某个变量的值是否与预料的取值相同?或者某个变量取什么值(事先并不知道这 ...