本文为原创文章,转载请标明出处

目录

1.移动光标

2.屏幕滚动

3.模式查找

4.位置标记

5.删除文本

6.撤销与重做

7.插入文本

8.复制与移动

9.修改文本

10.写入与退出

1. 移动光标

h => 左
j => 下
k => 上
l => 右 0 => 移动到行首(不可指定计数)
$ => 移动到行末(n-1)
^ => 移动到本行第一个非空白字符(不可指定计数)
_ => 移动到本行第一个非空白字符(n-1)
数字+| => 移动到第n列
f+字符 => 移动到该行右边该字符处
F+字符 => 移动到该行左边该字符处
t+字符 => 移动到该行右边该字符前
T+字符 => 移动到该行左边该字符后 - => 移动到前一行第一个非空白字符
+ => 移动到下一行第一个非空白字符
数字+G => 移动到第n行第一个非空白字符
数字+gg => 移动到第n行第一个非空白字符
G => 移动到最后一行行首
gg => 移动到第一行行首
数字+% => 移动到全文件百分之n处 M => 移动到屏幕中间行第一个非空白字符 % => '()[]{}'括号匹配(不可指定计数) w => 移动到下一个单词词首
e => 移动到下一个单词词尾
b => 移动到上一个单词词首
ge => 移动到上一个单词词尾
W => 移动到下一个空白格开的字串首
E => 移动到下一个空白格开的字串尾
B => 移动到上一个空白格开的字串首
gE => 移动到上一个空白隔开的字串尾 ( => 移动到下一句首
) => 移动到上一句首
} => 移动到下一段落
{ => 移动到上一段落
[[ => 移动到第一行行首
]] => 移动到最后一行行首
[] => 移动到前一个'}'
][ => 移动到后一个'}'

2. 屏幕滚动

Ctrl+u => 上滚1/2页
Ctrl+d => 下滚1/2页
Ctrl+f => 上滚1页
Ctrl+b => 下滚1页
zz => 置当前行于当前屏幕正中
zt => 置当前行于当前屏幕顶部
zb => 置当前行于当前屏幕底部

3. 模式查找

/+字符串 => 向后查找该字符串
?+字符串 => 向前查找该字符串
n => 查找下一处
N => 查找上一处
* => 向后查找光标处的字符串
# => 向前查找光标出的字符串 全文查找并替换
:%s/str1/str2/g

4. 位置标记

m+{a-zA-Z} => 用{a-zA-Z}记录当前位置(不可指定计数)
`+{a-zA-Z} => 跳转到标记{a-zA-Z}的位置(不可指定计数)
'+{a-zA-Z} => 同上
`` => 跳转到跳转之前的光标位置(不可指定计数)
'' => 同上
`" => 跳转到最后编辑的光标位置(不可指定计数)
'" => 同上
`[ => 跳转到最后修改的开始位置(不可指定计数)
'[ => 同上
`] => 跳转到最后修改的结束位置(不可指定计数)
'] => 同上
`. => 跳转到文件最后被改动的位置(不可指定计数)
'. => 同上
Ctrl+o => 跳转到跳转表较早的位置
Ctrl+i => 跳转到跳转表较晚的位置
:marks => 列出标记
:jumps => 列出跳转表

5. 删除文本

x => 删除光标之后的字符
X => 删除光标之前的字符
D => 删除光标至行尾
dd => 删除光标所在行
d^ => 删除光标至行首
d$ => 删除光标至行尾
dw => 删除光标至光标所在单词词尾(包括词尾空格)
de => 删除光标至光标所在单词词尾(不包括词尾空格)
dgg => 删除至文件头
gG => 删除至文件尾
J => 删除光标所在行的行尾换行符并插入空格
gJ => 删除光标所在行的行尾换行符不插入空格

6. 撤销与重做

u => 撤销上一步操作
Ctrl+r => 恢复撤销操作
U => 撤销行内操作(不可指定计数)

7. 插入文本

i => 在光标后插入文本
a => 在光标前插入文本
A => 在当前行末插入文本
I => 在当前行的第一个非空白字符前插入文本
o => 在当前行下方开始新行
O => 在当前行上方开始新行

8. 复制与移动

Y => 复制光标至行尾
yy => 复制光标所在行
y+操作 => 复制操作覆盖的内容
p => 粘贴至光标后
P => 粘贴至光标前
gp => 粘贴至光标后并光标后移
gP => 粘贴至光标前并光标后移 将1~3行文字复制到光标所在位置
:1,3 co .
将1~3行文字复制到第7行所在位置
:1,3 co 7
将1~3行文字移动到光标所在位置
:1,3 m .
将1~3行文字写到新的文件filename中
:1,3 w filename
将1~3行文附加到新的文件filename中
:1,3 w >> filename

9. 修改文本

数字+r+字符 => 用该字符替换n个字符
R => 进入替换模式
S => 删除光标所在行并进入插入模式
cc => 删除光标所在行并进入插入模式
c^ => 删除光标至行首并进入插入模式
c$ => 删除光标至行尾并进入插入模式
cw => 删除光标所在单词并进入插入模式(不包括词尾空格)
ce => 同上
C => 删除光标至行尾并进入插入模式(n-1)
s => 删除光标所在字符并进入插入模式
~ => 反转字符的大小写并前进光标
g~+操作 => 将操作覆盖的文本反转大小写
gu+操作 => 将操作覆盖的文本转为小写
gU+操作 => 将操作覆盖的文本转为大写
Ctrl+a => 将光标之上的或之后的数值增加n
Ctrl+x => 将光标之上的或之后的数值减小n
>+操作 => 将操作覆盖的内容右移tab
<+操作 => 将操作覆盖的内容左移tab
>> => 该行左移tab
<< => 该行右移tab
xp => 删除一个字符插入到光标之后

10. 写入与退出

:w => 写入当前文件
:q => 正常退出
:wq => 保存退出
:q! => 强制退出
ZZ => 保存退出
ZQ => 强制退出

如有不当之处,请予指正,谢谢~

Vim的基本使用(一)的更多相关文章

  1. 如何创建Vim Dotfile?

    Dotfile是电脑系统里的隐藏文件,它是专门给更高级的用户,如开发者.程序员或工程师使用的,让他们用来调整系统.如何创建Vim-Dotfile? 可以参考以下步骤: 1. 首先,你要检查一下.vim ...

  2. 玩转Vim 编辑器

    一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数 ...

  3. vim安装中文帮助手册

    安装方法:   在下面的网站下载中文帮助的文件包:$wget http://nchc.dl.sourceforge.net/sourceforge/vimcdoc/vimcdoc-1.5.0.tar. ...

  4. vim环境变量配置、背景色配置

    我们使用vi或者vim的时候,如果想要显示行号,可能会这样做:切换到命令模式,然后输入set nu,再按回车键就显示了:还有就是咱们在编写程序的时候,有的时候会希望按下回车键后,光标不是每次都在行首, ...

  5. vim+vundle配置

    Linux环境下写代码虽然没有IDE,但通过给vim配置几个插件也足够好用.一般常用的插件主要包括几类,查找文件,查找符号的定义或者声明(函数,变量等)以及自动补全功能.一般流程都是下载需要的工具,然 ...

  6. 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...

  7. VIM教程

    vim 的环境设定参数 :set nu :set nonu             就是设定与取消行号啊! :set hlsearch :set nohlsearch     hlsearch 就是 ...

  8. 在 Linux 打造属于自己的 Vim

    Linux 系统中很多东西都是以脚本代码.配置文件的形式存在,使用 Linux 系统时,需经常对这些文件进行编辑.很显然,如果没有文本编辑器,江湖之路寸步难行. 我的选择是 Vim.Vim 是 Lin ...

  9. 感悟 GNU C 以及将 Vim 打造成 C/C++ 的半自动化 IDE

    C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是 ...

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

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

随机推荐

  1. Ubuntu 14.04 安装LNMP(nginx/1.12.1+php7.1.9+mysql5.7.19)环境

    这篇教程中,我们将讨论怎样在Ubuntu 14.04搭建LNMP环境 1 安装Nginx 首先我们要更新apt源 sudo add-apt-repository ppa:nginx/stable  s ...

  2. linux中文件I/O操作(系统I/O)

    我们都知道linux下所有设备都是以文件存在的,所以当我们需要用到这些设备的时候,首先就需要打开它们,下面我们来详细了解一下文件I/O操作. 用到的文件I/O有以下几个操作:打开文件.读文件.写文件. ...

  3. 弹性布局flex

    前几天写过怪异盒子布局,以前在项目中用到弹性布局flex这个属性,当时没深入研究,这里各种查阅各种测试,把这个属性记录下 以免忘记, 弹性布局:是提供一种更加有效的方式来对一个容器中的条目进行排列.对 ...

  4. mysql 索引B-Tree类型对索引使用的生效和失效情况详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt343 当人们谈论索引的时候,如果没有特别指明类型 ,那多半说的是 B-Tre ...

  5. Java环境的搭建

    一.JDK的下载 JDK又称Java SE,可以从Oracle公司的官网上https://www.oracle.com/index.html下载. 1.打开Oracle官网.将光标移到[Menu]-[ ...

  6. 第4阶段——制作根文件系统之编译配置安装busybox(3)

    在上一节分析出制作一个最小的根文件系统至少需要: (1)/dev/console(终端控制台, 提供标准输入.标准输出以及标准错误) /dev/null  (为空的话就是/dev/null, 所有写到 ...

  7. Rational Rose2013安装及破解教程

    1.下载地址:http://pan.baidu.com/s/1mhKGfHY 2.安装:解压缩文件"[Rational.Rose.Enterprise.Edition.2003].Softw ...

  8. oop作业二—circle

    oop作业-circle 题目描述 编写一个程序,要求根据给定的圆的半径求圆的面积,并将求得的结果打印出来. 要求: 输入输出采用cin和cout. 建立一个工程,将程序写成两个.cpp和一个.h的形 ...

  9. 201521123065《java程序设计》第13周学习总结

    1. 本周学习总结 1.协议是端口之间进行网络通信的一种语言规则语法: 2.套接字Socket用于实现客户端与服务器端的连接,实现网络通信,进行数据交换: 3.LocalHost可以用来获取主机地址: ...

  10. python之socket--粘包补充

    struct补充 import struct import json header_dic={'total_size':123123, 'filename':None, 'md5':None} hea ...