`

VIM学习笔记

vim 
阅读更多

前面一段时间,用了几天的时间,又深入使用了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简介 VIM(Vi Improved),作为VI编辑器的增强版,是一款功能强大的文本编辑器,其功能与Emacs相当,深受程序员和技术人员的喜爱。VIM提供了多种模式,使得用户能够高效地...

    vim学习笔记

    ### VIM学习笔记知识点详解 #### 一、VIM基本操作与安装 VIM,全称为Vi IMproved,是一款在Linux和其他Unix-like操作系统上广泛使用的高级文本编辑器,基于原始的vi编辑器进行了一系列增强和改进。对于IT行业人士...

    vim学习笔记(linux)

    { 1:介绍 2:3种命令 3:删除 4:复制粘贴 5:搜索替换 6:保存退出 7:其他 }

    vLinux下学习vim学习笔记及总结

    关于vim使用 小技巧

    learning-vim:无废话极简版Vim学习笔记!文章按主题分拆为多个章节,并试图控制每节的信息量;通过文字色彩和字体,将命令,快捷键突出显示;在每节结尾,提供一个命令列表,盔甲回顾文中介绍的重要命令。如果这些文章能对喜欢Vim的朋友有所帮助,我将不胜荣幸

    这份学习笔记分为多个章节,每个章节专注于一个特定的主题,以控制学习的难度和信息量。作者明智地使用了颜色和字体样式来强调关键的命令和快捷键,这使得读者可以快速识别并记忆重要的操作。每章结束时提供的命令...

    vim 常用快捷键笔记

    ### vim 常用快捷键知识点 #### 一、引言 Vim 是一款功能强大的文本编辑器,广泛应用于各种...对于初学者来说,建议从最基本的快捷键开始练习,逐渐深入学习更高级的功能。希望本文能够帮助大家更好地理解和使用 Vim。

    vim之学习笔记主要是个人经验总结

    :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。 21. :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件 FILENAME 中。 22. :r FILENAME 可提取磁盘文件 FILENAME...

    在CentOs系统中关于Vim的学习笔记

    在CentOs系统中关于Vim的学习笔记 文章目录在CentOs系统中关于Vim的学习笔记一、常用命令1)如何打开小程序vim_test_linux2)插入模式和退出vim的方法a. 进入插入模式b. 返回普通模式c. 进入插入模式的几种方法d. 退出...

    vim使用笔记

    ### Vim使用笔记 #### Getting Started - **vimtutor**:`vimtutor` 是一个交互式的教程,适合初学者快速上手 Vim 的基本操作。它通过一系列练习帮助用户掌握 Vim 的基本命令。 - **gvim 和 vim 命令**: - `...

    兄弟连linux教程1-16章学习笔记(全)

    《兄弟连Linux教程1-16章学习笔记》是一份全面涵盖Linux基础知识的学习资料,特别适合初学者和希望快速提升Linux技能的人群。这个压缩包包含了一系列文本文件和辅助图片,旨在帮助用户深入理解Linux系统的基本操作和...

    vim命令.docx

    Vim,全称Vi Improved,是一款强大的文本编辑器,广泛应用于Linux系统中。它具有丰富的命令集,使得用户可以通过键盘高效地操作文本。...通过不断地练习和学习,Vim可以成为一款极其高效且个性化的文本编辑工具。

    文本编辑器vim的个人笔记

    本篇文章将根据在学习windows下的gvim 7.2以及通过vimtutor过程中整理的笔记,详细介绍vim的基础知识与实用技巧。 #### 二、启动与退出vim - **启动vim**:在命令行中输入`vim FILENAME`,其中`FILENAME`是你想要...

    超详细的linux学习笔记

    这份"超详细的Linux学习笔记"涵盖了Linux运维管理的多个重要方面,包括DNS(Domain Name System)、Samba、Apache、Sendmail以及常用的Linux命令。让我们逐一探讨这些知识点。 首先,DNS是互联网上的名称解析服务,...

    MyVim:vim,vimrc,vimrc模板,vim文档,vim note,vim学习,vimtutor,学习vim,vim实践,vim学习,vim笔记,vim训练营,vim教程,vim入门教程,vim简明教程,vim实操教程, vim入门文档,vimtutor中文版

    在`MyVim-master`这个压缩包中,可能包含了作者黄剑关于Vim的学习资料、笔记、教程和配置示例。这是一份宝贵的资源,可以帮助你深入理解Vim的使用和配置。你可以找到关于Vim的实践案例,学习如何通过Vim提高编码效率...

    vim命令壁纸改进

    总的来说,这款改进的Vim命令壁纸是学习和提升Vim技能的极佳辅助工具,它不仅解决了原有的显示问题,还增加了实用性,使得学习过程更加愉快。如果你是Vim的新手,或者希望提升Vim操作的流畅度,不妨下载这份壁纸并将...

    Linux学习笔记【博文整理系列】

    学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 博文来自http://blog.csdn.net/wklken,共12篇,类似手册,可快速练习和查阅,容易上手 文档列表: Linux笔记——vim常用操作及扩展补充...

    学习笔记.md

    ### JavaWeb 学习笔记知识点总结 #### Spring Boot 和 Spring MVC 的区别 1. **Spring MVC**: - **定位**:Spring MVC 是 Spring 框架中的一个重要组成部分,主要用于构建 Web 应用程序。 - **作用**:提供了一...

    WanShiTong:Vimwiki笔记

    Vimwiki 是一个基于 Vim 的个人 Wiki 系统,它允许用户以文本文件的形式轻松创建、组织和管理笔记,特别适合编程、并发、数据库和算法等技术领域的学习和研究。 Vim 是一款极其强大的文本编辑器,以其高度可配置性...

Global site tag (gtag.js) - Google Analytics