Vim日常操作 [转贴]

motions, scrolling -- 光标定位,滚屏与翻页

motions -- 光标定位
光标定位(motions) -- 精选命令
命令功能
$当前行的末尾
0当前行的开头
gg文件头
G文件尾
10gg
10G
跳到第10行
``这是两个 back quote,在键盘上是ESC下边那个键。
回到光标跳转前的位置
H跳到屏幕上的第一行
M跳到屏幕的中间行
L跳到屏幕上的最后一行
gk屏幕所见的上一行
gj屏幕所见的下一行

 

在Vim的命令模式下,有很多移动光标的命令,带给我们很大的便利。最常用的莫过于0 和$ ,把光标定位在行头和行尾。

常用的还有G 把光标定位在文件尾,gg 回到文件头。在这两个命令前面加一个数字就可以去到那一行,例如10gg 会带你去到第10行。

`` 的作用是回到光标跳转前的位置。例如,假设光标现在在第10行,按 G 去到文件尾,再按 `` 就可以回到第10行。

如果你发觉有时候k 和j 不是很好用(按一下就跨越屏幕上的几行),可以试一下用gk 和gj 。

 

scrolling -- 滚屏与翻页
滚屏与翻页 (scrolling) -- 精选命令
命令功能
zt
z回车
把光标所在行移到 屏幕顶端
z.把光标所在行移到 屏幕中间
zb把光标所在行移到 屏幕底部
CTRL-E向下滚屏一行(往下阅读文档)
CTRL-Y向上滚屏一行(往上阅读文档)
CTRL-F往前翻一页
CTRL-B往后翻一页

光标定位命令给文档编辑操作带来方便,而滚屏和翻页命令则让我们在阅读文档时感到舒适。

强烈推荐 以下几个按键映射:

:map <Space> <C-F>
:map <S-Space> <C-B>
:map <CR> <C-E>
:map <UP> <C-Y>
:map <DOWN> <C-E>

特别是第一个映射:map <Space> <C-F> ,设置后就可以用空格键翻页了,很是方便。另外几个映射的作用是:用Shift-Space向上翻页,按回车键向下滚屏一行、按上下箭头进行向上向下滚屏。

 

 

yank, put, delete, registers -- 复制、粘贴、剪切

复制、粘贴、剪切 (yanking, registers) -- 精选命令
命令功能
dd删除当前行
yy复制当前行
d$删除从光标位置到行尾的内容
yt<复制从光标位置到下一个“<”前的内容
(另外,ct< 修改从光标至“<”前的内容,在编辑HTML、XML文件时很方便)
"x复制把复制内容放进寄存器x
(x可以是26个英文字母之一,区分大小写)
"xp粘贴寄存器x的内容
"+特殊寄存器,读写系统剪贴板
:reg查看各个寄存器的内容

复制、粘贴、剪切,是编辑文档时常用的招数。在Vim里所有删除的内容都会进入Vim的寄存器(registers),所以可以把删除操作看成是剪切操作。

x , dd , yy 是很常用的命令,在这里就不多说了。复制或剪切多行内容可以在 dd 或 yy 前面加数字,例如可以用5yy 复制5行。

不过我更喜欢借助可视模式 (Visual mode)来进行复制剪切操作。先按v 或V 进入可视模式,然后移动光标选中要复制或剪切的内容,最后按d 剪切或者按y 复制。

在复制前可以先指定一个寄存器,方法是在双引号后跟一个字母,例如"a 指定了寄存器a,"B 指定了寄存器B。所以,"ayy 把当前行放进了寄存器a,以后就可以用"ap 来粘贴寄存器a里的内容了。如果不确定寄存器里放了什么内容,可以使用:reg 来查看。

Vim提供了一个很有用的特殊寄存器"+ ,它的内容就是系统剪贴板的内容。比如,在 firefox 里用 Ctrl-C 复制的内容就会出现在 "+ 里,可以在Vim里用"+p 粘贴出来。也可以在Vim里把复制或剪切的内容放进 "+ 里,然后在其它GUI程序里用 Ctrl-V 进行粘贴。

search, substitute - 查找、替换 (未完成 )

查找、替换(search, substitute) -- 精选命令
命令功能
*查找光标所在的单词
(这里的单词是指以空白字符或标点符号分隔开的字符串)
:set ignorecase不区分大小写
:set ignorecase smartcase自动区分大小写。输入全是小写时不区分大小写,输入中只要有大写字母就区分大小写。
:set hlsearch打开 高亮显示匹配字串
:nohlsearch 暂时关闭高亮,下次查找时自动高亮
:set nohlsearch关闭 高亮显示匹配字串

人们常喜欢举出用Vim查找、替换的例子来说明Vim的强大,可见该功能的有多重要。查找、替换的核心内容其实就是正则表达式 (regular expression),它的功能非常强大,但是不容易掌握。幸好我们不用把正则表达式完全学会才能使用它,只要学点简单的皮毛,就受用无穷了。

在Vim自带的帮助文档(:help 03.9)里说道:

The Vim editor uses regular expressions to specify what to search for. Regular expressions are an extremely powerful and compact way to specify a search pattern. Unfortunately, this power comes at a price, because regular expressions are a bit tricky to specify.

目前我只收集了少量技巧,以后在使用Vim的过程中还要不断学习,不断增加。

建议初学者先学习:help 03.8 ,:help 03.9 ,再学习:help usr_27 。

下面说一些实例。

/http://\f* 可以匹配一个普通的网址(不含 ? & 等符号的网址),所以:s%http://\f*%<a href="&">&</a> 可以把http://kikistar.com 替换成<a href="http://kikistar.com">http://kikistar.com</a> 。

如果网址中含有 ? & 等符号,例如http://www.newsmth.net/bbscon.php?bid=731&id=16603 ,把正则表达式稍微修改一下就行了: :s%http://\(?\|&\|\f\)*%<a href="&">&</a>

buffers -- 多文件操作

多文件操作(buffers) -- 精选命令
命令功能
:buffers
:ls
显示buffer列表
:bn转到下一个buffer
:bp转到上一个buffer
:b 3转到编号为 3 的buffer
:b index.html转到名为index.html的buffer
:sav另存为……
:set hidden切换buffer时不给出保存当前buffer的提示
CTRL-G查看当前buffer状态信息,如文件名、总行数、修改后未保存等。

在Vim里可以同时编辑多个文件,每个文件占用一个 buffer。

:buffers 和:ls 的作用是一样的,可以得到一个像下面那样的列表:

:ls
  1      "doc2xhtml.xsl"                line 1
  2 #    "document.css"                 line 1
  3 %a   "vimtips.xml"                  line 32

在各个buffer之间跳转有很多方法,可以用 :b 1 转到编号是 1 的buffer,也可以用 :b document.css 转到名为document.css的buffer。输入这个命令时,buffer名字可以用TAB键自动保全,很方便。此外还有两个我比较爱用的命令:

:bn		转到下一个buffer
:bp		转到上一个buffer

在buffer间跳转时,如果当前buffer内容编辑后未保存,Vim会要求你先保存。如果不保存,必须在命令后加 ! 强行跳转。

有一个命令可以使得在buffer间的跳转更方便,就是

 :set hidden 

这样设置后,在buffer之间跳转就不用先保存,也不用加 ! 了。但是,用了这个设置后使用:q! 时要加倍小心。我的建议是,用了:set hidden就不要用:q!,习惯了用:q!就不要用:set hidden了,数据永远比一时方便更重要。

 

 

参考资料:

补充:http://www.ibm.com/developerworks/cn/aix/library/au-speakingunix_vim/ 【操作更详细】

         http://hi.baidu.com/smilewwh/blog/item/2fd27baf445106fffaed5057.html[参数说明]

一些笔者原创或者搜集的 ABAP 小工具集合(一),持续更新中!! 每个报表短小精悍,拷贝到系统激活即可运行。不少报表脑洞大开。 阅读详情

相关推荐

抖音自定义卡片链接(图文链接)

抖音自定义可以自定义标题,打开链接,和展示图片 效果 主要代码 public void sendMessage(String conversationId, Object aBaseContent) throws Exception { // C233282u5.LIZIZ.LIZ().LIZIZ(LIZ).LIZ(obtain).LIZ(hLn).LIZ((AbstractC59811HHc) new H9Q()); Object HOa = ReflectionUtil

傅恒的博客 4140

vim屏幕滚动学习

*Q_sc*          Scrolling |CTRL-E|        N  CTRL-E       window N lines downwards (default: 1)  窗口向下移动一行(文本是反方向,向下一行) |CTRL-D|        N  CTRL-D       window N lines D ownwards (default: 1/2 window) 窗口向下移动半屏(文本向上) |CTRL-F|        N  CTRL-F       window

缘来是你 7111

数字后端零基础入门系列 | Innovus零基础LAB学习Day9

数字后端零基础入门系列 | Innovus零基础LAB学习Day9

weixin_37584728的博客 4577

vim实用指南(一):光标移动(3)——滚动屏幕

一、滚动整屏(翻页) 1、向上滚动整屏(左Ctrl+forward):Ctrl+f 2、向下滚动整屏(左Ctrl+backward):Ctrl+b 二、滚动半屏 1、向下滚动半屏(左Ctrl+Down):Ctrl+d 2、向上滚动半屏(左Ctrl+Up):Ctrl+u 三、滚动一行 1、向上滚动一行(左Ctrl+Extra one lin...

哦,原来你也在这里。 3169

UNITY3D万人同屏,Dots万人同屏解决方案_类萌宠宠之战

UNITY3D弹幕游戏开发,万人同屏解决方案

6471

黑苹果从入门到精通:最详细的VMware安装macOS教程

前言 不知为何,以前我发的两篇关于黑苹果的文章或没过审或被删除,最近SMZDM上有不少优质的黑苹果文章发出来,貌似禁令已开,前段时间在一篇写的很不错的黑果文章下吹牛说今年要写一个系列,故有了这篇文章作为系列的开头。 系列的名字起的有点俗,叫做xxx从入门到精通,但是我很喜欢,相信过半的黑果群众都是程序员,作为教程来说这个名字俗但是好用,我也希望这个系列能像其它入门到精通系列一样,让大家学到东西...

La victoria的博客 14万+

vim屏幕滚动笔记

屏幕滚动 Ctrl-E:显示窗口向下移动一行,光标如果在最上面,就会往下移动一行,其他情况会保持在那一行。 Ctrl-Y:显示窗口向上移动一行,光标如果在最下面,就会往上移动一行,其他情况会保持在那一行。 Ctrl-D:窗口向下滚动N行,默认滚动窗口行数的一半。光标会在相对的行数位置(比如在窗口下的第二行,翻页后还在第二行) Ctrl-U:窗口向上滚动N行,默认滚动窗口行数的一半。光标会在相对的行数位置(比如在窗口下的第二行,翻页后还在第二行) Ctrl-F:窗口向下滚动N页。翻页内容比较多,光标会移动到

习惯就好zz的专栏 731

【vsomeip3 教程】SOME/IP中间件去抖策略全解析

本文探讨了在SOME/IP中间件中实现Debounce(去抖动)机制的必要性和实现原理。文章首先分析了中间件层进行Debounce的四大动机:多订阅者共享收益、语义显式化、协议噪声屏蔽和入口处背压控制。接着详细阐述了Debounce的底层原理,包括变化检测机制(ignore和mask的应用)、时间门控策略(interval的两种时间基准)以及超时补发机制,并通过表格清晰展示了不同参数组合的效果和适用场景。最后,文章提出了工程落地的具体方法,包括策略选型、ignore/mask的设计方法论以及分层验证调试的实

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 232

vim滚动屏幕快捷键汇总

使用vim能够方便灵活的操作文本文档,快速翻页的快捷键如下 按行移动 Ctrl + E 屏幕向下滚动一行 Ctrl + Y 屏幕向上滚动一行 按半屏滚动 Ctrl + D 屏幕向下滚动半屏 Ctrl + U 屏幕向上滚动半屏 按全屏滚动 Ctrl + F 屏幕向下滚动一屏 Ctrl + B 屏幕向上滚动一屏 ...

mathematican的博客 1997

【深度学习新浪潮】手把手教你不花一分的token钱,纯本地部署openclaw

本地轻量开源AI智能体框架Windows 11 + WSL2 + Ollama + OpenClaw 一键部署零代码配置,直接用上本地模型工具调用未来方向:轻量化、插件化、本地生态成熟如果你喜欢本地AI、厌倦了云端限制、想真正拥有一个“听话又能干”的本地助手,OpenClaw 绝对值得现在就上手玩一玩。

专注:太空算力、AI infra、异构调度、大模型成本工程 2785

柔性电极材料新突破:清华团队实现0.1mV级脑信号采集精度

清华团队的 0.1mV 级柔性电极突破,不仅是材料科学与神经工程的跨界胜利,更标志着脑机接口从 “信号采集” 向 “神经交互” 的范式转变。当电极与脑组织实现 “柔性共生”,人类首次拥有了窥探大脑微观电活动的 “精密探头”,这既是神经疾病诊疗的里程碑,更是人机融合时代的新起点。随着技术标准化与产业生态的完善,这场始于实验室的 “柔性革命”,正加速向临床病房、智能工厂、消费电子等场景渗透,为脑机接口的大规模应用铺设 “柔性跑道”。:当柔性电极实现 “神经信号的无损捕捉”,如何平衡技术创新与伦理边界?

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2943

vi 多窗口同步滚动--适用于人工文件比较

vi本身带有文件比较功能,这个就不多说了,有时我们需要同时查看两个非常类似的文件,但是却有少许区别的地方,当然用专业的文件比较工具自然是非常方便的。 这里我只想提一下,vi实现多窗口同步滚动的方法, 先用vi打开两个窗口,分别打开两个文件,这里为了演示,我打开的是同一个文件,如图: 关键命令就是: set scrollbind, 当然这两个窗口都要设置下的,要不然它怎么知道哪几个窗

JoeBlackZQQ的专栏 6711

29.Labview界面设计 --- (下篇)自定义控件库、界面布局与外观设计

1.自定义控件外观(自定义控件)1.1 自定义外观库1.2 手动自定义控件外观2. 前面板控件布局方式(控件排布)2.1 模块化控制布局方式2.2 数据采集布局方式3. 前面板外观优化项(背景设计)3.1 前面板背景设计3.2 前面板窗口整理本节第一部分教大家安装一种可以直接用的自定义控件库,第二部分教大家如何自己设计控件并保存调用。

关注我,更多技术问题欢迎私聊~ 4781

vim日常操作

1)vim 文本文档 #进入编辑 保存退出: 末行模式:wq #保存退出 wq! #强制保存退出 q! #不保存退出 命令模式:shift+zz #保存退出 2)命令模式 . #重复上一步操作 Home #移动光标到行首 End #移动光标到行尾 gg #到第一行 G ...

KissPeiQi的博客 194

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

vim的日常操作

linux中关于vim编辑器:设置三种模式:命令模式、末行模式、编辑模式 命令模式:控制光标移动,可对文本进行复制、粘贴和查找工作 输入模式:正常的文本录入 末行模式:保存或退出文档,以及设置编辑环境 命令模式转输入模式:a,i,o键 输入模式转命令模式:esc 命令模式转末行模式::键 末行模式转命令模式:esc vim中常用命令 dd 删除(剪切)光标所在整行 5dd 删除(剪切)从光标开始的5行 yy复制光标所在整行 5yy复制从光标处开始的5行 n显示搜索命令定位到的下一个字符串 N显示搜索命令定

wweTHEUT的博客 182

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Vim 日常操作积累

高亮 指令 含义(作用) gd 选中并高亮 :noh 消除高亮 括号间内容的操作 先选中括号之间的内容(包括各种括号和单引号,双引号) 指令 含义(作用) vi+符号 ( 如:(,’,",{,[,) 选中括号之间的内容(包括各种括号和单引号,双引号) yi+符号 ( 如:(,’,",{,[,) 复制括号之间的内容(包括各种括号和单引号,双引号) di+符号 ( 如:(,’,",{,[,) 删除括号之间的内容(包括各种括号和单引号,双引号) 翻页 翻整页

xianxjm的博客 234

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Vim 日常操作

Vim 日常操作   显示 # 显示行号 :set nu# 插入:i# 保存并退出:wq      查找 # 最普通的查找:/search # 查找非分号开头的行。[正则表达式](php.ini 很多以分号开头的行,懒得看) :/\n[^;].*   删除 # 删除1到3行 :1,3d ...

DXsunrise的博客 178

vim日常操作备忘录

文件浏览器 在vim 7.0之前,文件浏览功能由explorer.vim插件提供;从vim 7.0之后,这个插件被netrw.vim插件所代替。Netrw插件伴随vim发行,不需要单独安装。 使用 :Explore 命令或缩写 :Ex 命令(注意E大写),将在当前窗口中打开文件浏览器 使用 :Sexplore 命令或缩写 :Sex 命令,将在上边水平拆分窗口中打开文件浏览器 使用 :Vexplore 命令或缩写 :Vex 命令,将在左边垂直拆分窗口中打开文件浏览器,如果放在右边可以用 :Vex! 也可以在

jiangkejkl的博客 704

vim日常常用操作

vim filename 打开或新建文件,光标位于第一行首 :set num 显示行号 set autoindent自动缩进 Enter光标下移一行 b左移一个单词至单词首 w右移一个单词至单词首 e 右移一个单词至单词尾 0 光标移至行首 $ 光标移至行尾 gg移到第一行 i 光标前插入文本 A行尾插入文本 o 当前行下新开一行 O当前行上新开一行 x删除光标后字符 X删除光标前字符 dd删除一行 yy复制一行 ynw复制n个单词 ynl 复制n个字符 p粘贴(dd和x删除的也可以) u 撤销前一次的操.

markey1的博客 148

vim 日常操作备忘

vim 的列操作: ctrl+q 进入列操作, shift + i 对列统一操作;常用于code前添加[tab]

liu1guo2qiang3的专栏 496

vim一些日常操作

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33804582的博客 86

vim的日常操作方法

工欲善其事,必先利其器,nano虽然简单易用,但功能却比较少,vim则可以进行高效的文本编辑,这里我就为大家简单地介绍一下它的用法。(1)vim的基本操作  在系统提示符号输入vim及文件名称后,就进入vi全屏幕编辑画面: vim filename 在进入vim之后,这时用户处于编辑模式下,若要对文本进行修改编辑需要切换到”输入模式”才能够输入文字。(2)编辑模式下按...

weixin_33850015的博客 89

个人日常vim常用操作

文本1235551.如果想在文本每行前添加空格ctrl+v,然后把光标选择上所需要添加空格的所有行---I---空格---esc1235552.如果想把每行的空格删除ctrl+v,然后把光标选择上所需要添加空格的所有行---d3.解决复制粘贴后vim格式错乱问题,setpaste4.u回退到上次修改的前的内容5.分屏显示多个文件内容vim -On test1 t...

weixin_34381666的博客 87

从实践出发0基础入门vim,覆盖日常常用操作

实践0基础入门vim

JILAU_WHO_AM_I_Q234的博客 481

【Linux】vim 日常操作命令

Insert开始编辑 Shift +D清空行 u:撤销上一步的操作 ctrl+r:将原来的撤销重做一遍 U:恢复一整行原来的面貌(文本打开时的状态) :wq 保存退出 :q 退出 :e! 放弃修改,重新回到文件打开时的状态 ...

我是Superman丶的博客 191

vim运维日常必备操作技巧(常用的全有)

一、说明 掌握vim的操作技巧能让运维的工作事半功倍,本文将罗列出运维日常使用到的操作技巧,不太常用的操作,本文没有收集,有高要求有兴趣的可以百度查阅vim专题 二、常用技巧 1)普通模式:移动光标的操作 指令 作用 G或者(Shift+g) 光标瞬移到文件的最后一行 gg 光标瞬移到文件的第一行,命令等同于“1G” 0(数字0)或者^ 光标瞬移到当前行的行首 $...

weixin_34150224的博客 136
上一篇: VirtualBox实现桥接模式[转载]
下一篇: 在liunx下用subversion
Techie
博客等级 码龄24年 0粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值