最近全面转换开发到Mac OS下,用MacVim作为IDE。记录一些Vim基本操作给自己备忘。
此次所说的都是在common-mode(c-mode,在Vim又名normal-mode,就是刚进入vim,不能输入文字的状态)下的移动,原始的vi 只能在c-mode 移动光标,在insert-mode 只做文字的输入,而不做光标的移动。当然Vim及elvis 的方向键是不论在那一种mode 皆可移动自如。
基本的光标移动
h | 左,或Backspace 或方向键。 |
j | 下,或Enter 或+(要Shift 键),或方向键。 |
k | 上,或方向键或-(不必Shift 键)。 |
l | 右,或Space 或方向键。 |
Ctrl+f | 即PageDown 翻页(Forward,向前、下翻页)。 |
Crtl+b | 即PageUp 翻页(Backward,向后、上翻页)。 |
同样的,比如20h,就是光标向左移动20字符;20j,光标向下移动20字符;其他类似。
使用 hjkl
键的移动是为了使手不必离开打字区(键盘*的部位),以加快打字的速度,如果各位不习惯,那就使用方向键吧!其实,一旦习惯了以后,对于编辑工作的效率
会有很大的帮助,而且有许多工作站的vi 只能使用hjkl 的移动方式,因此可能的话,尽量熟悉hjkl 的光标移动。
Backspace及Space的移动方式是到了行首或行尾时会折行,但方向键或hl 键的移动则在行首或行尾时您继续按也不会折行。转折换行的功能是Vim的扩充功能,elvis 无此功能。
jk 及使用方向键的上下移动光标会尽量保持在同一栏位。使用Enter,+,-的上下移动,光标会移至上(下)一行的第一个非空白字元处。
好像有点复杂,各位就暂时使用方向键来移动就简单明白了!等您爱上了Vim后再来讲究吧。
进阶的光标移动
0 | 是数目字0 而不是英文字母o。或是Home 键,移至行首,(含空白字元)。 |
^ | 移至行首第一个非空白字元,注意,要Shift 键。 |
$ | 移至行尾,或End 键。要 Shift 键。 |
G | 移至档尾(全文最后一行的第一个非空白字元处) |
gg | 移至档首(全文第一行之第一个非空白字元处)。 |
在规则表示式(regular expression)中,^ 是匹配行首,$ 是匹配行尾。
gg 是Vim的扩充功能,在elvis 或原始vi 中可用1G 来移至档首(是数字1 不是英文字l )。 G 之原意是goto,指移至指定数目行之行首,如不指定数目,则预设是最后一行。
w | 移至次一个字(word)字首。当然是指英文单字。 |
W | 同上,但会忽略一些标点符号。 |
e | 移至后一个字字尾。 |
E | 同上,但会忽略一些标点符号。 |
b | 移至前一个字字首。 |
B | 同上,但会忽略一些标点符号。 |
H | 移至屏幕顶第一个非空白字元。 |
M | 移至屏幕中间第一个非空白字元。 |
L | 移至屏幕底第一个非空白字元。这和PageDown,PageUp 不一样,内文内容并未动,只是光标在动而已。 |
n| | 移至第n 个字元(栏)处。注意,要用 Shift 键。 n 是从头起算的。 |
:n | 移至第n 行行首。或 nG。 |
特殊的移动
) | 移至下一个句子(sentence)首。 |
( | 移至上一个句子(sentence)首。 sentence(句子)是以 . ! ? 为区格。 |
} | 移至下一个段落(paragraph)首。 |
{ | 移至上一个段落(paragraph)首。 paragraph(段落)是以空白行为区格。 |
% | 这是匹配{},[],() 用的,例如光标在{ 上只要按%,就会跑到相匹配的} 上。 |
Vim光标移动的更多相关文章
-
vi/vim 光标移动命令(转载)
转载至:https://www.cnblogs.com/Jacklovely/p/6015037.html vi/vim 光标移动命令 移动光标上:k nk:向上移动n行 9999k或gg可以移到第一 ...
-
vi/vim 光标移动命令
vi/vim 光标移动命令 移动光标上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行下:j nj:向下移动n行左:h nh:向左移动n列右:l nl:向右移动n列 w:光标以 ...
-
Vim光标定位
*定位到指定行n: 输入"nG". 或输入"ngg". 或输入":n" 这里,n就是指定的行的行号.注意,有时候G=gg. *跳到屏幕顶部: ...
-
vim光标移动、跳转
这里记载我用到并需要下次会用的vim快捷键 vim的三个模式:命令行模式.插入模式.底行模式 从命令模式到插入模式: a 光标后输入 A 行尾输入 i 光标前输入 I 行首输入 o 上一行输入 O 下 ...
-
vim 光标按行移动
记录一下: [ H/M/L ] 注意:这几个命令是大写的. 使用H/M/L这三个键,可以让光标跳到当前窗口的顶部.中间.和底部,停留在第一个非空字符上.H命令和L命令前也可以加一个数字,但数字的含义不 ...
-
vim 光标的移动和跳转文件的位置
刚启动vim进入的就是命令模式 在命令模式下 h等于左箭头 j等于下箭头 k等于上箭头 l等于右箭头 想要多次移动可以使用30j或30↓向下移动30行 在命令模式下输入0跳到行头 在命令模式下输入$跳 ...
-
vim光标操作
v可视模式 ve可视模式但不包括selection o操作符等待模式 i插入模式 r替换模式(命令模式下,按r,输入一个字符将替换光标所在处字符) c命令行常规模式 ci命令行插入模式 cr命令行替换 ...
-
VIM 光标移动常用命令
h或^h 向左移一个字符 k或^p 向上移一行 j或^j或^n 向下移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开头 W 移到下一个字 ...
-
Linux vim编辑器使用详解
在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明: Linux默认自带vi(vim)编辑器,其程序包为: [root@xuegod163 ~]# rpm -qf `--1.8 ...
随机推荐
-
[LeetCode] Number of Digit One 数字1的个数
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less th ...
-
SAP CRM 最新简介文字(2007年、中英文)
以下内容是SAP CRM功能的精简描述,摘自SAP官方文档,附上中英文版本,可以对SAP CRM的主要功能有大致了解. 营销 - 使用营销资源管理.客户细分及列表管理.营销活动管理.线索管理.贸易促销 ...
-
Hadoop实践
1.将HDFS中的文本文件读取并以JSON格式转存到MongoDB时,报磁盘不足的异常. 实验室的5台计算机的存储空间都在500G以上,就目前存储的数据量来看,完全达不到磁盘接近饱和的状态.通过查看H ...
-
iOS 开发之Block
iOS 开发之Block 一:什么是Block.Block的作用 UI开发和网络常见功能的实现回调,按钮事件的处理方法是回调方法. 1. 按钮事件 target action 机制. 它是将一 ...
-
IO流的总结(二)
缓冲字节流: 我们先说一下缓存区的概念: 缓冲区就好比一辆车,一车一车的把数据拉走,这样就效率快多了 按照流的方向分类: 写入数据到流中,字节缓冲输出流 BufferedOutputStream 读取 ...
-
彻底理解this指向-----实例分析
this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向谁,一定要搞清楚这个. 情况1:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是wind ...
-
使用gulp对js、css、img进行合并压缩
1 概述 最新使用AngularJS框架做单页面项目,其中包括了很多库的和自已写的js.css.img文件,这些文件都不大,但是数量众多,导致web请求文件过多,一次性加载时比较慢.有尝试过使用异步加 ...
-
FreeModbus LINUXTCP Compile ERROR
/********************************************************************************* * FreeModbus LINU ...
-
活字格Web应用平台学习笔记2-基础教程-开始
今天先学活字格第一个教程,开始. 目标是能够用活字格创建一个简单的Web页面. 哈哈,简单,跟Excel一样,做单元格输入.合并.文字居中.加底色.加图片,然后发布. 然后就真的生成了一个Web页面! ...
-
Python 多进程应用示例
import multiprocessing import time def func(name): outputline=name for i in range(3): outputline+= & ...