1. 文件命令
2. 模式切换
3. 移动命令
4. 书签命令
5. 修改命令
6. 可视化操作
7. 区域选择
8. 宏命令
9. 分屏
10. 系统设置命令

1. 文件命令

[:]开始的命令需要输入[Enter]结束
 
:q:退出
:q!:退出不保存
:qa!:退出所有文件不保存
:w:保存
:e <file>:关闭当前文件并打开另一个文件
:saveas <file>:另存为<file>
 
:wq 或 :x 或 ZZ:保存并退出(ZZ不需要冒号[:])
 
:bn或:n:打开多个文件时,切换到下一个文件
:bp:多个文件时,切换到上一个文件
 
sudo权限强制写入::w !sudo tee % (!sudo - 执行shell命令sudo,tee - 将:w结果重定向,% - 当前文件)
:help <command>:显示命令帮助
 
:!<command>:执行一个Shell命令
:bash:启运一个shell而不退出vi。exit 命令后回到vim
:[n]:冒号后跟数字表示要到第几行,如果跟1,表示到文件头,如果跟$,表示到文件尾
Ctrl+G:可以显示当前行在整个文件的百分比

2. 模式切换

2.1 Normal模式 转 插入模式

i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行
<C-V>c:输入特殊字符^C
<C-P>或<C-N>:自动补齐

2.2 插入模式 转 Normal模式

[ESC]

3. 移动命令

N<command>:重复某个移动或修改命令N次
h、j、k、l:左、下、上、右 移动
g[h、j、k、l]:让移动相对于屏幕显示的行数而不是vim内部的行数

3.1 行内移动

w:移动到下一个单词开头
e:移动到下一个单词结尾
b:移动到前一个单词开头
W/E/B:移动时单词以空格分隔,默认只包含字母、数字和下划线
0:移动到当前行首
^:移动到当前行的第一个非空字符
$:移动到行尾
g_:移动到当前行尾第一个非空字符
):移动光标到下一个句子,使用句号[.]或换行分隔
( :移动光标到上一个句子,使用句号[.]或换行分隔 

3.2 文件内移动

G:到文件尾
[n]G:移动光标到指定的行(n)。(比如 10G 就是到第 10 行)
gg:到文件首
 
H:移动光标到屏幕上面
M:移动光标到屏幕中间
L:移动光标到屏幕下面
 
<C-F>:向下移动一屏
<C-B>:向上移动一屏

3.3 查找并移动

行内查找

使用[;]重复上一个 f/t/F/T 命令
fx:移动光标到当前行的下一个 x 处。x 可以是任意一个字母,而且你可以
tx:和上面的命令类似,但是是移动到 x 的左边一个位置(这真的很有用)
Fx:和 fx 类似,不过是往回找
Tx:和 tx 类似,往回找的 x 的右边一个位置

文件内查找

%:跳转到配对的括号
[[:跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)
'':跳转到光标上次停靠位置的行首字母处, 是两个', 而不是一个"
*:读取光标处的字符串,并且移动光标到它再次出现的地方。重复搜索按[n]
#:和上面的类似,但是是往反方向寻找。重复搜索按[n]
gd或gD:跳转到光标所在局部变量(或任意字符串)的定义处
/text:从当前光标处开始搜索字符串 text,并且到达 text 出现的地方。重复搜索按[n]
?text:和上面类似,但是是反方向

4. 书签命令

ma:在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
`a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。

5. 修改命令

.:重复上一次修改命令
N<command>:重复某个移动或修改命令N次,还可以重复其他命令,如10iza[ESC],表示重复插入10次za。
u:撤销上次修改
U:撤销当前行的所有修改
<C-R>:(撤销后)重做上次修改

5.1 格式控制

>>:增加缩进,"x>>"表示增加以下x行的缩进
<<:减少缩进,"x<<"表示减少以下x行的缩进 
 
合并下一行与当前行: J 

5.2 剪切(删除)、复制、粘贴

*motion可以是任意移动命令,如^、$、G、w、fx
*剪切板(又叫寄存器[register]),[:reg]列出使用中的寄存器及内容,使用"ayy将当前行复制到寄存器a,使用"ap粘贴寄存器a的内容
d{motion}:剪切,把motion"掠过"的文本剪切到剪切板
c{motion}:剪切并进入插入模式
dd:剪切当前行
cc:剪切当前行并进入插入模式
D:剪切光标当前位置到行尾,类似于[d$]
C:剪切光标当前位置到行尾并进入插入模式,类似于[c$]
x:剪切当前字符. (类似于命令模式的退格(backspace)键)
s:剪切当前字符并进入插入模式
y{motion}:复制,同上
yy:复制当前行到剪切板
Y:复制行到剪切板,类似于[yy]
 
p:粘贴到当前位置之后
P:粘贴到当前位置之前
]p:和p相似, 但自动调整粘贴代码的缩进
]P:和P相似, 但自动调整粘贴代码的缩进

5.3 查找替换

:%s/word1/word2/g:全文搜索word1并以word2替换之
:[n],[m]s/word1/word2/g:仅在第a行到第b行间搜索并替换
字符串查找时,”\n” 是换行,”\r” 是回车,也就是经常会看到的 ^M。

字符串替换时,”\r” 是换行,’\n” 是空字符(0×00)

 
删除空行:g/^\s*$/d

6. 可视化操作

选择文本

v:字符选择
V:行选择
<C-V>:块选择,可以选择任意矩形块

操作

d/c/y:删除或复制
gu或gU:全变小写或大写 
J:连接所有行
>或<:左右缩进
=:自动缩进

实例

^ 选择 Ixx[ESC]:行首插入
选择 Ixx[ESC]:块前插入xx
选择 Axx[ESC]:块末插入xx
选择 $ Axx[ESC]:行末插入

7. 区域选择

<action> [n] a/i <object>:选择object所指目标范围内的n重内容,如单词、句子、括号()、[]
<action>:d - 删除,y - 拷贝,v - 可视化选择
a/i:a - 包含object,i - 不包含object
<object>:w - 单词,W - 空格分隔单词,s - 句子,p - 段落,"/'/)/}/] - 括号或引号

8. 宏命令

qa:开始录制宏并保存在寄存器[a]
q:结束录制
@a:回放存在寄存器a的宏
@@:回放最新的宏
 
实例
qaYp<C-A>q 100@@:将1行"1"变成101行数字序列:1\r 2\r 3\r ... 101

9. 分屏

vim -On file1 file2 ...:打开若干文件,并垂直分屏
vim -on file1 file2 ...:打开若干文件,并水平分屏
:new:创建空白水平分屏
:vsplit(:vsp) <file>:创建垂直分屏,并打开文件<file>,默认为当前文件
:sp(split) <file>:创建水平分屏,并打开文件<file>,默认为当前文件
 
基本都是<C-W>然后加上某一个按键字母,触发一个功能
<C-W> c/q或:q:关闭当前窗口
<C-W> o或:only:关闭所有其他窗口
<C-W> s/v:水平/垂直分屏当前文件
 
<C-W> h/j/k/l:移动光标到左/下/上/右边分屏
<C-W> w:移动光标到顺序下一个分屏
 
<C-W> H/J/K/L:移动分屏到左/下/上/右边
<C-W> =:所有分屏大小相等
<C-W> +/-:增加/减少分屏高度
<C-W> >/<:增加/减少分屏宽度

10. 系统设置命令

在Normal模式下使用[:set xxx]设置开启,使用[:set noxxx]设置关闭,也可写在~/.vimrc文件中(文件中不要冒号[:])
syntax enable
syntax on
set ic                  "忽略大小写(ignore case)
set noic               "不忽略大小写
set nu               "显示行号     
set hlsearch
set expandtab      "设置tab 
set shiftwidth=4   "设置tab的间隔 
set ts=4               "四个空格代表一个tab(tabstop)
set ai                   "设置自动缩进(autoindent)  
set ls=2               "总是显示文件名(也可以用 Ctrl+G 或 :f)
 

Vim 命令整理的更多相关文章

  1. vim 命令整理(自己经常使用)

    vimm(vimsual)是Linux/UNIX系列OS中通用的全屏编辑器. vimm分为两种状态,即命令状态和编辑状态.在命令状态下.所键入的字符系统均作命令来处理.如:q代表退出,而编辑状态则是用 ...

  2. vim命令整理

    最近使用vim比较多,整理一下!

  3. 整理常用的 vim 命令

    vim 是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了 vim 的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率 vim 功能强大,对应的命令也非常的多,对于初学 ...

  4. Vim 模式及常用命令整理

    VIM 命令     以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令.   vim的模式 基本上可以分为3种模式,分别是命令模式(command mode).插入模 ...

  5. Linux 命令整理 vim

    Vim  一.官方网站 http://www.vim.org 二.背景 所有的 Unix Like 系统都会内建 vi 文书编辑器,但是在我们编程这里开发使用最多的要数 vim命令了. 三.操作 三种 ...

  6. 【linux】---常用命令整理

    linux常用命令整理 一.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: l ...

  7. vi / vim 命令集合

    vim的命令太多了,不常用就会忘记,所以我决定把vim的各种命令整理下来,包括vim的插入删除.光标移动.多窗口编辑.复制粘贴.查找替换.以及一些常用命令 删除操作 dd 删除当前行 ndd      ...

  8. vi命令整理

    vi命令整理 u 撤销上一次操作 ctrl+r 恢复上一次操作 : 跳转至第1行 :$ 跳转至最后一行 ctrl+f 向文章末尾翻页 ctrl+b 向文章开始翻页 yy 复制一行 p 粘贴刚刚复制第一 ...

  9. 常用 vim 命令总结

    学习 vim ,是需要经常使用的,而这些命令,是我这段时间最常用的命令,很有效率的提高的我的文本编辑效率.----------------------------------------------- ...

随机推荐

  1. js编写当天简单日历

    之前一直很想用javascript写一个日历,但是因为完全没有好的思路, 所以迟迟没有尝试.最近在网上刚好看到用javascript编写的简单日历的例子,代码量虽然不大, 但是我觉得很好地阐述了js日 ...

  2. ae专题图

    点密度图.分层设色图/等级图.单值图.柱状图.饼状图的实现代码 C# private void 点密度图ToolStripMenuItem_Click(object sender, EventArgs ...

  3. 如何在sharepoint2010中配置Google Anlytics 分析服务

      简介 Google Analytics(分析)不仅可以帮助您衡量销售与转化情况,而且能为您提供新鲜的深入信息,帮助您了解访问者如何使用您的网站,他们如何到达您的网站,以及您可以如何吸引他们不断回访 ...

  4. 记Ubuntu开机黑屏及解决过程

    之前遇到一次Ubuntu因为失误卸载了xinit.xserver的原因,导致开机黑屏无法进入系统,实际上当时是第一次遇到这种情况,因此花了点时间自己摸索,事后想来解决方案还是比较简单的,从目前的观点来 ...

  5. SharePoint 2013 JavaScript API 记录

    1.获取创建者字段(Author),oListItem为SPListItem对象 oListItem.get_item('Author')只能获取到对象,获取用户名要用oListItem.get_it ...

  6. Linux学习心得之 jnlp的文件和java应用程序安全设置

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 jnlp的文件和java应用程序安全设置 1.前言2. jnlp的文件打开3.java应用程 ...

  7. iOS开发-canOpenURL: failed for URL: "xx" - error:"This app is not allowed to query for scheme xx"

    转载自:http://www.jianshu.com/p/e38a609f786e

  8. 设置 Xcode 自动生成代码片段

    一.什么是代码片段 当在Xcode中输入dowhile并回车后,Xcode会出现下图所示的提示代码: 这就是代码片段,目的是使程序员以最快的速度输入常用的代码片段,提高编程效率.该功能是从Xcode4 ...

  9. Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/26810303),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...

  10. Android studio 克隆分支

    1.当远程仓库有两个分支时,像这样的 获得分支的远程仓库地址 注意:这个地址默认就是克隆master 分支 2.如何克隆 v1.2 分支 ? 用android studio 把项目打开,可以看到 此时 ...