VIM笔记

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

-->关于打开、保存和退出

:wq!    强制保存退出
:wq    保存退出
:w   保存文件
:w!    强制保存文件
:x   ----- 作用和:wq 一样
ZZ  ---- 作用和:wq一样,(注意Z是大写的,并且不是在命令模式)
:q  ---- 退出
:q!  ---  强制退出
:e    打开文件
:e!    强制打开文件(丢失修改)
:saveas filename    另存为

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

-->关于移动

h : 在当前行向左移动一个字符
j:  移动到下一行
k:  移动到上一行
l:  在当前行向右移动一个字符
Ctrl +f:  向前滚动一页
Ctrl +b:  向后滚动一页
:n   将光标定位到第n行
:$   将光标定位到最后一行
0   将光标定位到本行的行首
$   将光标定位到本行的行尾
G   将光标定位到本文章的最后一行,与:$功能相同。
H   将光标定位到屏幕的顶端
M   将光标定位到屏幕的中间
L   将光标定位到屏幕的底端
z.  将光标所在行定位到屏幕中央
z+   将光标所在行定位到屏幕第一行
z(回车) 和z+功能相同
Shift + (回车)  和z+功能相同
z-   将光标所在行定位到屏幕最后一行
nz   将光标移动到第n行
Ctrl + f 向下翻一屏幕
Ctrl + b向上翻一屏幕
Ctrl + u向上翻半屏幕
Ctrl + d向下翻半屏幕
Ctrl + e向下翻一行
Ctrl + o   回到上一次的jump
Ctrl + i    跳回下一个jump
:ju    显示所有可以jump的位置

(待考证)
Ctrl + ]   跟着link/tag转入

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

-->关于选择

aw    一个单词(支持数字前缀)
is    一个句子内部(支持数字前缀) 
ap    一个段落(支持数字前缀) 
a"     一个双引号区域 
i}或i{或iB    一个“{}”块内部(支持数字前缀) 
a>或a<    一个“<>”块(支持数字前缀) 
at     一个标签块(支持数字前缀,<tr>等标签)
(动作 + (数字) + a/i + 范围)(a包含快边缘,i不包含边缘)
vaw 选择单词,包括后面的空格
va" 选择""中的字符,包括""
vi" 选择""中的字符,不包括""

+/-加数字表示上下多少行,eg:
+10    当前行往下10行
$-10    尾行往上数10行

=============================================
-->关于编辑

yy:  复制光标当前行
yny:  复制当前行往下n行
nyy:  复制光标当前行到当前行以下的n-1行
yw    复制光标下字符到下一个单词,包括之间的空格
ye    复制光标下字符到当前单词的结尾字符,不包括单词后的空格
"{a-zA-Z}y    复制到的内容保存到寄存中(包括前面的")("ayy复制当前行到a寄存)
"*y     将信息复制到系统的复制版中
:1,100co200   将1~100的内容复制到第200行。
:100,102co$   将100~102行的内容复制到最后一行。

p :   粘贴到当前行的下一行
P(大) :   粘贴到当前行的 上一行
"{a-zA-Z}p    将寄存中的值粘贴出来
"*p    从系统复制版中粘贴内容

i:  在当前位置的字符前面进入插入模式
I:  在当前行的开头进行插入
a:  在当前位置的字符后面进入插入模式
A:  在当前行的结尾进行插入
o:  在当前行下面打开一个新行进行插入
O:  在当前行上面打开一个新行进行插入

dd   删除当前行
d↑  删除当前行以及上面一行
dn↑ 删除当前行以及上面n行
d↓  删除当前行以及下面一行
dn↓  删除当前行以及下面n行
ndd   与nyy相似
dnd  与ndd一样
dw   删除一个单词
ndw   与ndd相似
dnw   与ndw一样
dG   删除当前光标到文件末尾的所有内容。
d0   删除当前光标到本行行首的所有内容
d^   删除当前光标到本行字符首的所有内容
d$   删除当前光标到本行行尾的所有内容
x    删除一个字符
X    删除光标前的一个字符
nx   删除n个字符(光标下以及光标后的n-1个字符)
nX    删除光标前的n个字符
S    删除整行(GVIM中为d$)
s    删除当前字符进入编辑模式
C   删除光标之后的内容并进入编辑模式
cc   删除整行内容进入编辑模式
c3w    删除之后的3个单词
:1,100d  删除1~100
:100d    删除第100行
:1,100mo$   将1~100行的内容移动到最后一行。

J    将下一行和当前行拼接,无视中间的空格
r    替换当前光标下的字符
R    替换多个字符,直到退出替换模式
~    当前字母大小写切换
3~    将光标后的三个字符转换大小写
g~~    改变当前行的大小写
U    选中内容改成大写
u    选中内容改成小写
gUU    当前行的字符,小写变大写
guu    当前行的字符,大写变小写
gu(回车)  当前行以及下一行转为小写
3gUU 将从光标开始到下面3行字母改成大写
gUw 将光标下的单词从光标处到单词结尾改成大写。

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

-->关于搜索、替换

/:   后面跟要查找的东西,在文件中向后搜索
?:  后面跟要查找的东西,在文件中向前搜索
#    向上搜索当前光标所在的关键字
*    向下搜索当前光标所在的关键字
%    查找成对的标记
n:  向后重复搜索
N:  向前重复搜索
fa: 本行向后查找a,光标移到a上
Fa: 本行向前查找a,光标移到a上
ta:  本行向后查找a,光标移到a前一个字符
Ta:  本行向前查找a,光标移到a前一个字符

regexp:  是要匹配的式样
replacement:  是要替换的字符串

:[range]s/pattern/string/[c,e,g,i]    
:s/regexp/replacement    替换当前行出现的第一个式样
:s/regexp/replacement/g    替换当前行所有的匹配
:%s/regexp/replacement/g    替换文件中所有匹配式样
:1,100s/old/new/g(c)

=============================================
-->关于撤销、重做

u:  撤销上一次的更改
Ctrl + r:   重做撤销
vim的undo是树形结构,可以回到这个结构的任意地方
:undo 2    回到undo结构的第二层
:undolist    显示undo列表
:earlier 10s    undo到10s前的操作
:earlier 10m    undo到10m前的操作
:earlier 10h    undo到10h前的操作
:later 10s
:later 10m
:later 10h

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

-->关于书签、标记

 m{a-zA-Z}    保存书签 小写是文件书签,大写是全局书签
`{a-zA-Z}    快速跳转到某个书签
`0    跳转到上次推出的位置
``    跳转至最后一次跳转的位置
`"    跳转到最后一次编辑的位置
g`{a-zA-Z}    跳转到书签
:delm{a-zA-Z}    删除书签
:delm!    删除全部书签
:marks    显示所有书签

:ta    跳转入标记
:ts    显示匹配标记
:tags    显示所有标记

=============================================
-->关于多文件操作

vim a.txt b.txt c.txt    打开多个文件
:next    编辑下一个文件
:next!    强制编辑下一个文件
:wnext    保存当前文件,标记下一个文件
:args    查看当前编辑文件的文件名
:previous
:previous!
:last
:first
:set autowrite
:set noautowrite
:hide e abc.txt 隐藏当前文件,打开abc.txt进行编辑
:buffers 显示vim中所有的文件
:buffer2 编辑vim中的第二个文件

=============================================
PS:  还有一个重要的命令就是"." 命令,这个命令是用来重复上一命令的

-->关于配置

:set nu!   显示/隐藏行号

全局设定(打开编辑器就设置好的)
配置文件Program Files/Vim/_vimrc
colorscheme elflord 色彩方案
:set nu 始终显示行号
:set nonu 始终不显示行号
:set hlsearch    高亮搜索结果
:set nohlsearch    取消搜索结果高亮

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

模式
v    选择模式
Shift + v    行选择模式
i/a/s/c/x/d...    都可进去编辑模式
Esc    进入命令模式

 打印
:hardcopy    打印vim中的内容 (print text)
:'<,'>hardcopy   打印选中的内容
:m,nhardcopy 打印m到n之间的行

 格式(修改格式后,直接:w保存即可保存为新文件)
:source $VIMRUNTIME/syntax/2html.vim    将文档转成HTML文档
:set ff=unix    设定文件为unix格式
:set ff=dos    设定文件为dos格式
:set ff?    查看文件格式

加密?
/**vim -x 文件名 (filename)    输入2次密码,保存后文件每次都会要密码才能进入
如果密码错误,也能查看,不过是乱码**/

语法
:syntax enable    打开语法的颜色显示
:syntax clear    关闭语法颜色
:syntax off    完全关闭全部语法功能
:syntax manual    手动设定语法

二进制
vim -b filename    二进制显示文件
:%!xxd    更改当前文件为二进制显示
:%!xxd -r   恢复二进制文件为文本显示

自动备份
:set backup    开启备份
:set backupext=.bak    备份文件的后缀为.bak
自动备份有个问题就是,如果你多次储存一个文件,那么这个你的备份文件会被不断覆盖,你只能有最后一次存文件之前的那个备份。
没关系,vim还提 供了patchmode,这个会把你第一次的原始文件备份下来,不会改动
:set patchmode=.orig    保存原始文件为(文件名.orig)

外部命令
:!    直接运行shell中的一个命令
:!make    当前目录下运行make命令
!!date
:.!date    插入当前时间
:pwd    查看当前文件的路径

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

-->vi里如何:撤销上次操作?,多次重复一组编辑操作?.......

a)   撤消上一个编辑操作。    =====>   u 
b)   重复上一个编辑操作。    =====>   . 
c)   还原被撤消的编辑操作。   =====>   Ctrl   +   R 
d)   多次重复一组编辑操作。    =====>  ". " 命令可以重复最近一次的编辑动作.

a(A) => Append
b(B) => Backward word
c(C) => Change
d(D) => Delete
e(E) => End of word
f(F) => Find
g(G) => Go
H => Home of window
i(I) => Insert
J => Join
K => Keyword under the cursor
L => Last line of window
m => Mark
M => Middle line of window
n(N) => Next find
o(O) => Open a new line
p => Paste
r(R) => Replace
s(S) => Substitue
t(T) => Till
u(U) => Undo
v(V) => Visual mode
w(W) => Word move
y(Y) => Yank
  

转载于:https://www.cnblogs.com/kostark/archive/2012/11/07/2758535.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一份完整的问卷模板_一份完整市场推广策划方案模板

完整的市场方案主要分为以下几大板块&#xff0c;在策略撰写的过程中&#xff0c;依据策略优先级按照以下三个步骤划分&#xff0c;前后承接。为避免无用功&#xff0c;尽量确定前一部分后&#xff0c;再开始后一部分&#xff01;方案目录&#xff0c;记住这个&#xff01;整个…

Application是什么

2019独角兽企业重金招聘Python工程师标准>>> 1:Application是什么&#xff1f; Application和Activity,Service一样,是android框架的一个系统组件&#xff0c;当android程序启动时系统会创建一个 application对象&#xff0c;用来存储系统的一些信息。通常我们是不需…

linux mysql udf打包_Linux下MySQL 5.1编写UDF 并运行(Install)获取当前时间的毫秒数...

Mysql 无法获取当前时间的毫秒数自行定制UDF&#xff0c;以提供current_ms方法1. 编写 C 文件#ifdef STANDARD#include lt;stdio.hgt;#incMysql 无法获取当前时间的毫秒数自行定制UDF&#xff0c;以提供current_ms方法1. 编写 C 文件#ifdef STANDARD#include #include #ifdef _…

Daily Scrum 2012/11/08

TeamSH-IT 今天经完成了之前在数据定义存在一些问题。sui老师经过小组之间的交流&#xff0c;完成了对数据定义的最终版。周末将进行初步的整合和测试。 详细的完成情况&#xff1a; 组员今天任务明天任务Hu Renjun 任务213 整合各个模块功能 完成完整的数据流过程 任务213 …

部分不能激活Win 7 的问题分析和解决方案

前言 总所周知&#xff0c;目前Win7的激活程序多如牛毛&#xff0c;但总有些朋友的机器就是激活不了&#xff0c;以至于要刷BIOS等高危操作。 本文通过对Win7激活程序的原理分析&#xff0c;介绍一种能够解决大部分OEM版系统激活Win7的方法&#xff0c;希望能够帮助需要的朋友…

回调 that.setdata 数据不更新_重大利空落地,或损上亿利润,乐普医疗回调近四成...

摘要&#xff1a;心脏支架集采后&#xff0c;价格不足700元&#xff0c;预计其利润受损超亿元。11月5日&#xff0c;全国冠状支架招标结果公布后&#xff0c;医药行业遭受重创。11月6日收盘&#xff0c;医疗行业指数基金——医疗ETF()重挫&#xff0c;较早从事心血管介入医疗器…

android下创建文件夹和修改其权限的方法

原文&#xff1a;http://www.cnblogs.com/wanqieddy/archive/2011/12/28/2304906.html 由于工作的需要&#xff0c;今天研究了在android下创建文件夹和修改其权限的方法&#xff0c;需要了解的是每个应用程序包都会有一个私有的存储数据的目录&#xff08;类似文件夹&#xff0…

python中直方图-Numpy,Python中的“拉伸”直方图(级别)

这是一种方法- def stretch(a,lower_thresh,upper_thresh): r 255.0/(upper_thresh-lower_thresh2) # unit of stretching out np.round(r*(a-lower_thresh1)).astype(a.dtype) # stretched values out[a out[a>upper_thresh] 255 return out 根据OP,设置的标准是&#x…

Windows 2008 R2服务管理器刷新失败

在更新补丁的过程中&#xff0c;服务器强制重启后&#xff0c;在正常开机登录到系统后 打开服务器管理&#xff0c;角色及功能错误无法打开&#xff0c;参考以下链接解决。 参考 http://yewind.blog.51cto.com/33144/379097 http://social.technet.microsoft.com/Forums/en-US…

预处理指令

由ANSI的标准规定, 预处理指令主要包括: #define #error #if #else #elif #endif #ifdef #ifndef #undef #line #pragma 由上述指令可以看出, 每个预处理指令均带有符号"#"。下面只介绍一些常 用指令。 …

MFC字体

GDI字体分3类&#xff1a;点阵字体&#xff08;raster font&#xff09;、笔画字体&#xff08;stroke font&#xff09;和Truetype字体。 默认点阵字体有7种&#xff1a; System &#xff08;用于SYSTEM_FONT&#xff09; 无衬线 西方 有衬线 gb2312…

decimal double java_Java BigDecimal和double BigDecimal类

BigDecimal类对于不需要任何准确计算精度的数字可以直接使用float或double&#xff0c;但是如果需要精确计算的结果&#xff0c;则必须使用BigDecimal类&#xff0c;而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。表11-15 BigDecimal类的常…

python自然语言处理案例-Python自然语言处理 NLTK 库用法入门教程【经典】

本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 在这篇文章中&#xff0c;我们将基于 Python 讨论自然语言处理&#xff08;NLP&#xff09;。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的&#xff0c;用于自…

分享45套2011年和2012年的高质量免费网站模板

日期&#xff1a;2012-11-11 来源&#xff1a;GBin1.com 前端时间我们分享了12套超酷的后台管理员界面网站模板&#xff0c;相信看过的朋友肯定已收入囊中了&#xff0c;今天呢&#xff0c;我们继续推荐45套高质量的免费网站模版&#xff0c;相信如果需要自己搭建网站的朋友肯…

基于PageRank的作弊检测算法

Spam Rank TrustRank Topical TrustRank Anti-Trust Rank HostRank BadRank 转载于:https://www.cnblogs.com/youwang/archive/2009/11/12/2310659.html

使用log4j日志-配置载入问题

1.在eclipse中&#xff0c;把log4j.properties放在类路径下&#xff0c;在项目启动时就会自己主动载入。2.在idea中。把log4j.properties放在类路径下&#xff0c;可是项目启动时不能直接载入&#xff08;原因不明白&#xff0c;哎&#xff0c;这个让我纠结了一下午&#xff01…

水晶报表中对某一栏位值进行处理_【节能学院】能耗管理系统在某超市嘉兴店二期工程的设计与应用...

摘要&#xff1a;随着社会生活水平的提高&#xff0c;经济的繁荣发展&#xff0c;人们对能源的需求逐渐增长&#xff0c;由此带来的能源危机日益严重。学校建筑如何实时的了解、分析和控制学校的能源消耗已成为需要解决的迫在眉睫的难题。传统的能源消耗智能以月/季度/年为周期…

python数据分析天气预报论文_用python+sklearn(机器学习)实现天气预报数据 模型和使用...

项目地址系列教程0.前言在上一篇教程里我们已经获取了所需要的全部数据&#xff0c;包括训练数据集和测试数据集&#xff0c;使用ProcessData()调用&#xff0c;所以接下来写模型的建立和预测1.建立模型没段代码在文章后面都会整合成一段&#xff0c;分段展示只是便于阅读a.准备…

偶然在网上看到的题目,jQuery功底如何一测便知晓!!!!!!

笔者最终实现的效果如下&#xff1a;    参考答案下载地址 通过手写html代码实现如图效果&#xff1a;以下题目全部使用jQuery来做 当点击“加载数据”按钮时根据提供的数据通过jQuery动态创建表格数据填充该表格。数据见data.txt文件。效果如图&#xff1a; 当点击“设置样…

何为生气

天下有不如意事&#xff0c;不当忿激与争。   ———陈于陛   生活中经常有人为一些小事而生气&#xff0c;其实他们也不想这样做&#xff0c;但就是控制不了自己的心情。生气不但影响了自己的身心健康&#xff0c;而且还影响到周围的人际关系。   从前&#xff0c;有个妇…