前面一段时间,用了几天的时间,又深入使用了VIM(不仅仅停留在h,j,k,l),下面是一些常用的操作。
2013年8月21日
------------------------------------------------------------
<Ctrl-v> <Ctrl-d> 在可视化模式下选择到尾部;
<Ctrl-a> 将光标放在一个数字上面,该数字会自动加一;
<Ctrl-n> <Ctrl-p> 在I-Mode下,自动补全内容;
分屏相关:
<Ctrl-w> c 关闭当前窗口;
<Ctrl-w> q 关闭当前窗口,如果只剩下最后一个,则退出vim;
<Ctrl-w> = 让所有屏幕同等大小
<Ctrl-w> - 减少高度
<Ctrl-w> + 增加高度
<Ctrl-w> L 向右移动
<Ctrl-w> H 向左移动
<Ctrl-w> K 向上移动
<Ctrl-w> J 向下移动
<Ctrl-w> l 将光标移动到左边的屏幕
<Ctrl-w> h 将光标移动到右边的屏幕
<Ctrl-w> k 将光标移动到上边的屏幕
<Ctrl-w> j 将光标移动到下边的屏幕
<Ctrl-w> < > 增加、减少窗口宽度
<Ctrl-w> T 移动当前窗口至新的标签页(由split->tab)
:resize -4 明确当前光标所在窗口大小减多少
:resize +4 明确当前光标所在窗口大小加多少
:resize 4 明确设定当前光标所在窗口的大小
2013年8月22日
------------------------------------------------------------
1. *,单独按下表示完整匹配光标下的单词。把光标移动到你要搜索的词(变量名、函数名等)上,比如"test",然后按"*",Vim将自动缠身给一个对"\<test\>"的搜索,也就是搜索完整的单词test。
相似的技巧还有"#"(向上完整匹配光标下的单词)、"g*"(向下部分匹配光标下的单词)等。
2. <Ctrl-x> <Ctrl-f> 搜索可匹配的文件名
3. ga (显示光标下的字符在当前使用的encoding下的内码)
4. guw (光标下的单词变为小写) gue
5. gUw (光标下的单词变为大写) guE
6. 将整个文档全变为小写(大写)
gg
gu(gU)
G
7. gU0 从光标所在的位置到行首,都变为大写
gU$ 从光标所在的位置到行尾,都变为大写
gUG 从光标所在的位置文章最后一个字符,都变为大写
gU1G 从光变所在的位置到文章第一个字符,都变为大写
8. <Ctrl-r> 在命令模式下可复制寄存器中的内容
9. tabnew [filename] 在一个新的标签内打开一个新的文件
10. gt ,gT 标签内切换 <num>gt,<num>gT
11. :tabs 查看所有打开的tab
2013年8月23日
------------------------------------------------------------
:ls : 显示当前buffer的情况
:cd .. : 进入父目录
:args : 显示目前打开的文件
~ 光标处字母大小写转换
\'. : 跳到最后修改的那一行 (超级有用)
`. : 不仅跳到最后修改的那一行,还要定位到修改点
:history : 列出历史命令记录
:his c : 命令行命令历史
:his s : 搜索命令历史
q/ : 搜索命令历史的窗口
q: : 命令行命令历史的窗口
:<C-F> : 历史命令记录的窗口
:map <F2> :w<CR> : 一个映射,将f2建映射成为 保存 <CR>表示回车。
!!date : 读取date的输出 (但是会替换当前行的内容)
# 在分割窗口中快速切换
:map <C-J> <C-W>j<C-W>_
:map <C-K> <C-W>k<C-W>_
在分割窗口中相互切换,并最大化。<C-W>k,<C-W>j是上下切换,<C-W>_,将当前光标所在窗口最大化。
ab STR String 缩写命令
d /text 删除从文本中出现\" text\"中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容
d fc 删除从文本中出现字符\"c\"的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
d tc 删除当前行直到下一个字符\" c\"所出现位置之间的内容
2013年8月24日
------------------------------------------------------------
注意:以下命令都是在插入模式用的 CTRL-C: 退出插入模式。如果嫌<Esc>太费事,可以试试这个。
CTRL-a: 插入先前插入过的内容。看起来比较有用,但是飘忽不定,很难把握。
CTRL-n/CTRL-p: 搜索匹配,自动完成单词(超级有用)。
CTRL-r: 插入寄存器内容。例如<C-r>*会插入windows剪贴板的内容。:reg命令查看全部寄存器。
CTRL-t/CTRL-d: 将本行缩进/去缩进,无论光标在什么位置
CTRL-y: 输入和上面一行相同的字符。有时候可能用的着。
CTRL-e: 输入和下面一行相同的字符。
CTRL-x: 进入CTRL-x模式。CTRL-x模式基本上是用来自动完成的。vim的自动完成可以包含当前文件、头文件、tag文件、字典文件等。
CTRL-x模式中的主要命令:
CTRL-x CTRL-l: 整行自动完成
CTRL-p/CTRL-n: 在当前文件中自动完成单词
CTRL-f: 自动完成文件名
CTRL-e: 在插入模式下让屏幕往上滚一行(在Normal模式下也可以)
CTRL-y: 屏幕下滚一行(同上)
2013年8月26日
------------------------------------------------------------
mx 将当前位置标记成x(此处的x可以是任意字母)
'x (单引号) 将光标移到标记x处的行首
`x (反引号) 将光标移到标记x处
`` (两个反引号) 当前光标处与标记处来回切换
'' (双引号) 当前光标所在行处与标记处来回切换,光标定位在行首
:map 列出所有已定义的映射
:unmap lv 取消lv映射的命令
:mapclear 清楚所有映射
:inoremap 插入模式的map
map需要注意的是:
1.默认情况下,map命令是作用在normal模式下的
2.如果是想再virsual模式下新建某一个命令的宏,可以使用:vmap,:vmap d <esc>dd就可以在virsual模式下把光标所在行删除。
3.默认情况下,map是采用递归映射的,比如a映射成b, :map a b,然后c又映射成了a,:map c a,那么最终c也会自动映射成b,等同于:map c b 。如果不想使用递归,那么就要用:noremap
:inoremap ( ()<esc>i 插入模式下输入'(',输出'()'
2013年8月27日
------------------------------------------------------------
:set foldmethod 可以设置折叠方式,默认使用manual(手动)方式。
zf 创建折叠(fold creation)
zo 打开折叠(open)
zc 再次折叠起来(colse)
zf`a 折叠当前光标处到表计a处的文本
zf% 光标移至'{'时,vim会去匹配'}',这样'{}'这件的内容就可以折叠起来
viw(可视模式下选择一个单词)
daw
diw
上面两个都是删除一个的单词(区别一下dw),那么a和i有什么不同呢?
a会选择一个对象(an object)包括空格在内,而i只会选择一个对象的内部(an inner object) 不包含空格
下面是一些命令含义:
aw a word
iw inner word
aW a WORD
iW i WORD
as a sentence
is i sentence
ap a paragraph
ip i paragraph
a[或a] a[] block (a[ 与a] 都表示一个[]块)其他符号类似
at a tag
it inner tag
缩写
:abbreviate 作用于所有模式(ab)
:iabbrev 作用于插入模式(iab) :iunabbrev forx (取消某个缩写)
:cabbrev 作用于命令行模式(cab)
:iab forx for(x=0;x<100;x++){<CR><CR>} (这里例子主要是表示可以加入回车)
:iab sysout System.out.println("");<esc>2hi
如果写出一个缩写词语,但是本意确实要写这个词语,怎么取消掉缩写呢? 当输入完要写的东西后按<Ctrl-v>
copy命令
命令格式:[range]copy{address},range表示拷贝范围,address表示目标地址。
如 :1copy. 表示将第一行的内容拷贝到当前所在光标的下一行(.表示当前行),如果三行全部拷贝 :1,3copy.
copy的另外两种写法 :co或者:t。常用命令:
:3t. 拷贝第三行到当前光标的下一行
:t3 拷贝当前行到第三行的下一行
:t. 拷贝当前行到光标的下一行,相当于Yp和yyp
:t$ 拷贝当前行到最后一行
move操作与copy操作方式类似。
其实学习vim比较繁琐,很多的命令,这些命令也许你看的时候很简单,但是当你真正用的时候就会忘记掉。所以学习vim没有捷径,只有不停的练习,强迫自己在日常编辑文本的时候使用vim,使用的过程中遇到一个想法(比如,我要复制整篇文章,然后到别的地方),那就大胆的去尝试,放心的去google。多使用几次,我相信等下次的时候,直接拿来就使用了。在学习的过程中,我也是这样做的。
相关推荐
### VIM学习笔记书知识点详解 #### 一、VIM简介 VIM(Vi Improved),作为VI编辑器的增强版,是一款功能强大的文本编辑器,其功能与Emacs相当,深受程序员和技术人员的喜爱。VIM提供了多种模式,使得用户能够高效地...
{ 1:介绍 2:3种命令 3:删除 4:复制粘贴 5:搜索替换 6:保存退出 7:其他 }
关于vim使用 小技巧
这份学习笔记分为多个章节,每个章节专注于一个特定的主题,以控制学习的难度和信息量。作者明智地使用了颜色和字体样式来强调关键的命令和快捷键,这使得读者可以快速识别并记忆重要的操作。每章结束时提供的命令...
### vim 常用快捷键知识点 #### 一、引言 Vim 是一款功能强大的文本编辑器,广泛应用于各种...对于初学者来说,建议从最基本的快捷键开始练习,逐渐深入学习更高级的功能。希望本文能够帮助大家更好地理解和使用 Vim。
:w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。 21. :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件 FILENAME 中。 22. :r FILENAME 可提取磁盘文件 FILENAME...
在CentOs系统中关于Vim的学习笔记 文章目录在CentOs系统中关于Vim的学习笔记一、常用命令1)如何打开小程序vim_test_linux2)插入模式和退出vim的方法a. 进入插入模式b. 返回普通模式c. 进入插入模式的几种方法d. 退出...
### Vim使用笔记 #### Getting Started - **vimtutor**:`vimtutor` 是一个交互式的教程,适合初学者快速上手 Vim 的基本操作。它通过一系列练习帮助用户掌握 Vim 的基本命令。 - **gvim 和 vim 命令**: - `...
《兄弟连Linux教程1-16章学习笔记》是一份全面涵盖Linux基础知识的学习资料,特别适合初学者和希望快速提升Linux技能的人群。这个压缩包包含了一系列文本文件和辅助图片,旨在帮助用户深入理解Linux系统的基本操作和...
Vim,全称Vi Improved,是一款强大的文本编辑器,广泛应用于Linux系统中。它具有丰富的命令集,使得用户可以通过键盘高效地操作文本。...通过不断地练习和学习,Vim可以成为一款极其高效且个性化的文本编辑工具。
本篇文章将根据在学习windows下的gvim 7.2以及通过vimtutor过程中整理的笔记,详细介绍vim的基础知识与实用技巧。 #### 二、启动与退出vim - **启动vim**:在命令行中输入`vim FILENAME`,其中`FILENAME`是你想要...
这份"超详细的Linux学习笔记"涵盖了Linux运维管理的多个重要方面,包括DNS(Domain Name System)、Samba、Apache、Sendmail以及常用的Linux命令。让我们逐一探讨这些知识点。 首先,DNS是互联网上的名称解析服务,...
在`MyVim-master`这个压缩包中,可能包含了作者黄剑关于Vim的学习资料、笔记、教程和配置示例。这是一份宝贵的资源,可以帮助你深入理解Vim的使用和配置。你可以找到关于Vim的实践案例,学习如何通过Vim提高编码效率...
总的来说,这款改进的Vim命令壁纸是学习和提升Vim技能的极佳辅助工具,它不仅解决了原有的显示问题,还增加了实用性,使得学习过程更加愉快。如果你是Vim的新手,或者希望提升Vim操作的流畅度,不妨下载这份壁纸并将...
学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 博文来自http://blog.csdn.net/wklken,共12篇,类似手册,可快速练习和查阅,容易上手 文档列表: Linux笔记——vim常用操作及扩展补充...
### JavaWeb 学习笔记知识点总结 #### Spring Boot 和 Spring MVC 的区别 1. **Spring MVC**: - **定位**:Spring MVC 是 Spring 框架中的一个重要组成部分,主要用于构建 Web 应用程序。 - **作用**:提供了一...
Vimwiki 是一个基于 Vim 的个人 Wiki 系统,它允许用户以文本文件的形式轻松创建、组织和管理笔记,特别适合编程、并发、数据库和算法等技术领域的学习和研究。 Vim 是一款极其强大的文本编辑器,以其高度可配置性...