`

Vim 学习

阅读更多

视频教程: http://www.akae.cn/study/vim.html

参考网页:http://hegangus.blog.163.com/blog/static/63956884201051774418761/

http://www.followstars.cn/article.asp?id=65

 

1. 基本命令

 

    显示行号:set nu

    不显示行号: set nonu

    到行首:0 或Home键

    到行尾:$ 或End键

    获取正在编辑文件的文件名 :file

    将选中的字符变成小写:u
    将选中的字符变成大写:U
    将选中的字符变大小写反转:~

    将选中的文字向右移一个TAB:> 
    将选中的文字向左移一个TAB:<

    将选中的代码格式化:=

 

    设置编码格式 :set fenc=utf-8

 

    撤销

    撤销前n步操作:undo n

    撤消历史向前走:g+

    撤消历史向后走:g-

    复制当前行:yy

    选中复制:v  方向键选中  y进行复制

    粘贴:p

 

    删除

    x: 删除当前光标下的字符(dl的快捷命令)。
    X: 删除当前光标之前的字符(dh的快捷命令)。
    D: 删除自当前光标至行尾的内容(d$的快捷命令)。
    dw: 删除当前光标至下一个word的开头。
    db: 删除当前光标至前一个word的末尾。
    diw: 删除当前光标所在的word(不包括空格)。
    daw: 删除当前光标所在的word(包括空格)。
    dG: 删除当前行至文件尾的内容。
    dgg: 删除当前行至文件头的内容。

    df: 加一个字母,删除光标到该字母之间的字符(限于当前行)

 

    移动光标

    w: 以单词为单位移动光标,3w来使光标移动3个单词的位置。同理,3j、3k等也是可以的。
    b: 类似w,光标的移动方向与w相反。
    e: 光标移动到下一个单词的末尾。
    ge: 与e的作用也是类似的,只是光标的移动方向与e相反。
    $、End: 将光标移动到本行的末尾, 接受计数命令,如3$的作用是移动到光标后第三行的末尾。
    ^: 将光标移动到当前行的第一个非空格字符。
    0、Home:键的作用是将光标移动到本行的最前面。值得注意的是,^和0都是不支持计数命令的。

    f: 之后加一个字母,就可以把光标定位到本行的下一个此字母所在的位置。

    F: 类似f,只是搜索方向相反。它们都是支持计数命令的。可惜的是,这两个命令并不支持中文的搜索。

    [number]加上G:跳转到指定行

    gg: 直接跳转到文件最开始的那行。
    [number]加上%:跳转到文件百分之多少的位置。
    H(home)、M(middle)、L(last): 在当前这一屏幕上移动光标。
    滚屏:那么ctrl+U和ctrl+D分别是向上和向下滚动半屏。而ctrl+E和ctrl+Y分别是向上和向下滚动一行。

    zz: 将当前行置于屏幕中央

    zt: 将当前行置于屏幕第一行

    zb: 将当前行置于屏幕最后一行。

    位置标记,使用m加上a-z这二十六个字母,当你需要跳转的时候,可以通过命令`加上你定义的标记实现。当你忘记自己定义的标记时,可以通过:marks命令查看

 

    ctrl-e: 屏幕向上滚1行
    ctrl-y: 屏幕向下滚1行
    ctrl-u: 屏幕向上滚1/2屏
    ctrl-d: 屏幕向下滚1/2屏
    ctrl-f: 屏幕向上滚1屏
    ctrl-b: 屏幕向下滚1屏

 

2. 查找替换命令

     (1) :g/null/d

    找到null的行并且删掉
     (2) 简单替换表达式
     替换命令可以在全文中用一个单词替换另一个单词:
    :%s/four/4/g
    “%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可。
     如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\<” 来指定匹配单词开头:
     :%s/\<four/4/g
     显然,这样在处理 “fourty” 的时候还是会出错。用 “\>” 来解决这个问题:

    :%s/\<four\>/4/g

    如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:

    :%s/\<four\>/4/gc

    (3) 删除多余的空格
    要删除这些每行后面多余的空格,可以执行如下命令:

    :%s/\s\+$//
    命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是

     “\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。
    (4) 匹配重复性模式
    星号项 “*” 规定在它前面的项可以重复任意次。因此:
    /a*
    匹配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因为零次也包含在内。星号 “*” 仅仅应用于那个紧邻在它前面的项。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 “\(”,后面加 “\)”。因此这个命令

    /\(ab\)*

    匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。
    要避免匹配空字串,使用 “\+”。这表示前面一项可以被匹配一次或多次。
    /ab\+
    匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” 的 “a”。
    要匹配一个可选项,用 “\=”。 例如:

    /folders\=
    匹配 “folder” 和 “folders”。
    (5) 指定重复次数
    要匹配某一项的特定次数重复,使用 “\{n,m}” 这样的形式。其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如:

    /ab\{3,5}
匹配 “abbb”,”abbbb” 以及 “abbbbb”。
    当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如:

         模式            匹配次数
         \{,4}             0,1,2,3 或 4
         \{3,}             3,4,5,等等
         \{0,1}            0 或 1,同 \=
         \{0,}             0 或 更多,同 *
         \{1,}             1 或 更多,同 \+
         \{3}              3

    (6) 多选一匹配
    在一个查找模式中,”或” 运算符是 “\|”。例如:

    /foo\|bar
    这个命令匹配了 “foo” 或 “bar”。更多的抉择可以连在后面:

    /one\|two\|three
    匹配 “one”,”two” 或 “three”。
    如要匹配其多次重复,那么整个抉择结构须置于 “\(” 和 “\)” 之间:

    /\(foo\|bar\)\+
    这个命令匹配 “foo”,”foobar”,”foofoo”,”barfoobar”,等等。
    再举个例子:
         /end\(if\|while\|for\)
    这个命令匹配 “endif”,”endwhile” 和 “endfor”。

 

3. 分割窗口

 

参考网页:http://hi.baidu.com/esta_pessoa/blog/item/0d274c097347ebad2fddd458.html

 

    同时打开多个文件  

    上下窗口:vim -o file1 file2 file3 。。。

    左右窗口:vim -O file1 file2 file3 。。。

    在vim中新建文件分割窗口显示: :new(上下打开)  :vnew(左右打开)

 

    比较两个文件

    终端打开:vimdiff file1 file2

    vim中打开:diffsplit file 或vertical diffsplit file

    ]c 跳转到下一个差异点
    [c 跳转到上一个差异点

    折行:

        :set foldenable 使能折行
        zc: 关闭一个折行
        zo: 打开一个折行
        zM: 关闭所有的折行
        zR: 打开所有的折行

    手动更新修改高亮显示::diffupdate

    消除差异

        :dp 将当前窗口光标所在行put到另外一个窗口的对应行上,以消除差异

        :do 将另外窗口光标所在行包含到当前窗口对应的行上,以消除差异

        简单理解:dp就是把我的给你,do就是把你的给我

 

    窗口操作

    关闭窗口:close,ZZ,q,only

    全部关闭:qall,wall(存盘退出)

 

    移动窗口:调整文件顺序

        ctrl-w K    会使当前窗口移动到上面并扩展到整屏的宽度。
        ctrl-w H    把当前窗口移到最左边
        ctrl-w J    把当前窗口移到最下边
        ctrl-w L    把当前窗口移到最右边

 

    切换窗口:hjkl 可以用方向键代替

        ctrl-w h    跳到左窗口
        ctrl-w j     跳到下窗口
        ctrl-w k    跳到上窗口
        ctrl-w l     跳到右窗口
        ctrl-w t    跳到最顶上窗口
        ctrl-w b    跳到最底下窗口

 

4. Vim显示行号、语法高亮、自动缩进的设置

 

    在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc
    在Fedora中vim的配置文件存放在/etc目录中,配置文件名为vimrc
    在终端 输入以下命令来编辑vimrc配置文件:
    sudo vim /etc/vim/vimrc 或者 sudo gedit /etc/vim/vimrc

 

    (1) 显示行号
    在文件末端添加一新行,输入 set nu
    (2)语法高亮
    在文件中找到 "syntax on   这一行,去掉前面的双引号",双引号是注释的意思
    (3)自动缩进
    在文件末尾添加一行,输入  set autoindent
    在添加一行,输入         set cindent
    其中 autoindent 是自动缩进; cindent是特别针对 C语言语法自动缩进

    注:如果设置好以上设置后,Vim没有作出相应的动作,那么请你把你的VIM升级到最新版,一般只要在终端输入以下命令即可:sudo apt-get install vim  整理一下自己原来所学的知识和工作中用的技术  骑驴找马

分享到:
评论

相关推荐

    VIM学习笔记书

    ### VIM学习笔记书知识点详解 #### 一、VIM简介 VIM(Vi Improved),作为VI编辑器的增强版,是一款功能强大的文本编辑器,其功能与Emacs相当,深受程序员和技术人员的喜爱。VIM提供了多种模式,使得用户能够高效地...

    VIM学习的好资料.......

    ### VIM学习的好资料 #### 知识点详解 **一、VIM简介与基本操作** **1.1 操作模式介绍:** - **Normal模式(普通模式)**:这是VIM启动时默认进入的模式,可以进行文本的移动、复制、删除等操作。 - **Insert...

    神器 vim 学习 方法

    ### 知识点详解:Vim学习方法与高级技巧 #### Vim是什么? Vim是一款功能强大的文本编辑器,源于vi编辑器,适用于Unix、Linux以及Windows等操作系统。它以其高度可定制性和高效性,在程序员和系统管理员中广受欢迎...

    vim学习教程中文版

    vim学习教程 不要试图从本手册中去获取什么知识,使用Vim更多的是一种技能而 不是一种知识,Vim的学习需要的更多的不是头脑而是双手,经常按书中 的指示进行示例性的操作,在学习Vim众多精致的技巧时,不要贪图一下 ...

    vim学习资料2017

    【vim学习资料2017】是一份针对古老但强大的文本编辑器Vim的综合学习资源,这份资料可能包含了2017年时 Vim 的最新发展、技巧和最佳实践。作为一个专业的IT大师,我将为你解析这个主题中的关键知识点。 1. **Vim的...

    ProVim英文版(Vim学习手册)

    《ProVim英文版》是一本深入探讨Vim编辑器的权威指南,它为用户提供了全面、详尽的Vim学习资料。Vim,全称Vi IMproved,是一款强大的文本编辑器,深受程序员和系统管理员的喜爱,因其高效的操作方式和高度可定制性而...

    vim 学习纪要 -- 自己动手搭建IDE

    【vim学习纪要 -- 自己动手搭建IDE】 Vim(Vi IMproved)是一款强大的文本编辑器,被广泛用于Linux和Unix系统中,同时也支持Windows等其他操作系统。它以其高效、可定制性和丰富的插件系统而闻名,使得许多程序员将...

    VIM学习资料

    本“VIM学习资料”包含了VIM的基础知识、进阶技巧以及可能包含的实际操作示例,旨在帮助用户快速掌握这款强大的编辑器。 1. **VIM的基本操作**: - 启动VIM:在终端输入`vim`后跟文件名,如`vim test.txt`。 - ...

    VI VIM 学习资料英文版

    **VI VIM 学习资料英文版** Vim(Vi IMproved)是Vi编辑器的增强版本,是一款功能强大的文本编辑器,广泛应用于Linux、Unix和macOS等操作系统。Vi编辑器的历史可以追溯到1976年,由Bill Joy为Berkeley Software ...

    VIM学习

    ### VIM学习知识点详解 #### 一、VIM简介与启动 VIM(Vi IMproved)是一款基于vi的增强版文本编辑器,在Linux系统中广泛使用。它支持颜色配置、多级撤销、图形界面等功能,使得编辑文本变得更加高效便捷。 **启动...

    vim学习心得

    ### Vim学习心得与实用技巧详解 #### 一、引言 在IT行业中,文本编辑器是程序员不可或缺的工具之一。其中,Vim作为一款高度可配置的文本编辑器,在Unix平台乃至其他操作系统上都广受欢迎。本文将详细介绍Vim的一些...

    Mac开发利器之程序员编辑器MacVim学习总结--木一璕的文章--CFANZ社区--IT技术分享网站1

    **MacVim学习总结** MacVim是一款专为Mac OS X设计的Vim文本编辑器的版本,它在保持Vim的核心功能的同时,融入了Mac的界面风格和操作习惯,使其成为Mac平台上开发者的重要工具。这篇文章将对MacVim的学习进行总结,...

    vim入门及代码浏览 vim学习

    Vim有多个不同的模式,而学习Vim的关键就在于掌握这些模式及其快捷键。以下是Vim的一些基本操作和概念: 普通模式(NORMAL):这是Vim默认的模式,在这个模式下,你可以使用键盘快捷键来移动光标、复制粘贴文本以及...

    vim学习资料整理。。。。

    VIM教程与学习资料汇总(2010-02-19更新) 善用佳软.htm Vim用户手册中文版72.pdf 史上最强的Vim 配置文件(修正版) - redguardtoo的专栏 - CSDN博客.htm 普通人的编辑利器——Vim_善用佳软_新浪博客.htm 神奇...

    VIM学习文档

    ### VIM学习文档知识点解析 #### 一、引言 VIM是一款强大的文本编辑器,被誉为“人类史上最优秀的文本编辑器”。尽管它有着极高的效率和灵活性,但初学者往往会因为其陡峭的学习曲线而感到困惑甚至放弃。本文将通过...

Global site tag (gtag.js) - Google Analytics