先说说我,我使用了这么久的vim,但是完全没有将vim的功能完全利用到,无非就是使用了编辑(i)、保存(:w)、退出(:q)、等简单的编辑,命令,以及NerdTree这一个插件,所以在这里需要重新学习vim,争取将vim使用的出神入化,最大化的利用vim的强大的功能

1.vim编辑器简介
    vi:是Visual Interface的简称
    vim:是vi的升级版,完全兼容vi的命令,所以完全可以把vim当作vi来使用,但是vim比vi更强大了
        vim支持多级撤销:一般的可视化编辑器使用Ctrl+Z的方式进行撤销;vi中是通过u撤销上一步操作,但是只能撤销一步
        vim可以跨平台
        vim支持语法高亮
        vim支持图形界面(但是完全没有必要,用图形界面反而降低了bige)
    
2.vim编辑器的操作模式
    介绍三种模式
        普通模式
            比如:撤销、剪贴、复制
        编辑模式
            用于输入文本(打字)
        命令模式模式(尾行、末行),有时也归为命令模式
            可以输入一些指令,比如保存文件、退出、搜索文件中的字符串……操作
    vim刚刚启动的时候默认是命令模式,这个时候是不能往里面输入,此时是等待用户输入命令而不是等待用户编辑文件,以后再继续介绍,这里只说 i ,是从命令模式切换到输入模式
    输入了字符串之后,按 ESC 按钮就又从输入模式切换到命令模式(其实此时也可以操作底行模式),这个时候可以输入:w 就是保存文件(将输入的信息写到文件中),在输入:q 就会退出vim,或者输入:wq 在保存后立即退出(这里面的:w、:q、:wq其实就是在底行模式下操作的)

3.vim命令本身(假如存在文件abc)

  vim -R abc:以只读方式打开文件,不能修改文件

  vim -x abc:对文件进行加密,在保存文件时对文件进行加密,以后每次打开文件的时候都需要输入秘钥,否则会出现乱码

vim abc:打开abc文件,一般这时光标会出现在第一行
    vim + abc:打开abc文件,且这时候光标会出现在最后一行
    vim +3 abc:打开abc文件,将光标定位在文件的第三行,如果输入的行号超过文件的最大行,那将会定位在最后一行
    vim +/findstr abc:打开abc文件,并且将光标定位到 findstr第一次出现的行(如果文件中多行出现 findstr的话),而且打开文件之后还可以按 n 键在多个findstr进行来回的切换,这样很方便、很高效
    vim aa bb cc:这样将会打开多个文件(如果文件不存在就会创建)
        但是最先编辑的是aa,如果想编辑第二个文件bb,可以在底行模式输入:n 然后回车就可以切换去编辑bb 文件,再在底行模式输入 :n 回车切换到 cc文件;
        要想回到前一个文件,可以在底行模式输入 :N 回车,或者输入 :prev 回车

4.普通模式模式的常用指令(输入命令,然后直接产生效果)
    h --光标左移(3h,向左移动3个光标)
    j --光标下移(加数字方式同上)
    k --光标上移(加数字方式同上)
    l --光标右移(加数字方式同上)
    ctrl+f --向下翻页
    ctrl+b --向上翻页
    ctrl+d --向下翻半页
    ctrl+u --向上翻半页
    dd --删除光标所在的行(D:删除从光标所在位置到行尾的所有字符)
    o --在光标所在的行的下方插入一行并切换到输入模式(O是在当前行上方插入一行)
    yy --复制光标所在的行
    p --在光标所在的行的下行粘贴
    P --在光标所在的行的上行粘贴

0、^ --移至行首
    $ --移至行尾
    w、W --按词前移(w和W有些不同,具体自己使用去感受)
    b、B --按词后移
    e、E --移至词尾
    行号G --移至指定行(比如10G,就是移动到第10行)
    d^ --删除从当前光标到行首的字符
    d$ --删除从当前光标到行尾的字符
    dG --删除从当前光标到文件尾的字符
    dgg --删除从当前光标到文件开头的字符

u 撤消
    . 重复上溢操作
    g- 返回较早的文本状态
    g+ 返回较新的文本状态

% 在匹配的括号之间进行跳转
    gd 在当前文件中对变量或函数名进行搜索,然后进行跳转(变量会跳转到变量被定义的地方,且所有的该变量名都会被高亮显示)
    [I 搜索当前光标所在位置的全局标识(比如宏常量)出现的地方,当前文件以及引用的头文件
    Ctrl n 代码提示

= 逐行整理缩进
    =G 需要在文件开头时执行,这是将整个文件进行缩进整理

5.命令模式的常用指令(往往输入命令之后,再按Enter回车键才会执行)
    :w 回车 --表示将文件的修改从内存写入到硬盘中,相当于常说的保存文件
    :q 回车 --退出当前vim编辑的文件
    :! 回车 --强制执行,比如 :q! 表示强制退出编辑,不进行保存
    :ls 回车 --列出当前编辑器编辑的所有文件
    :n 回车 --切换到下一个文件
    :N 回车 或者 :prev 回车 --切换到上一个文件
    :3 回车 --表示将光标定位到第3行
    /findstr 回车 --从光标位置开始向后搜索字符串 findstr(再用命令 n会跳至下一处)
    ?findstr 回车 --从光标位置开始向前搜索字符串 findstr

:undo
    CTRL-R 重做
    :redo
    :undolist 查看撤消分支
    :earlier 退回到指定时间前的文本状态
    :later 退回到指定时间后的文本状态
    :set number--让编辑器显示行号
    : --移至指定行(比如:10回车 是移到第10行)

:g/s1/s//s2/回车 --用s2 替换文本中的字符串s1(如果在某一行中出现两个或多个要替换的字符串,则只会去替换第一个)
    :g/s1/s//s2/g回车 --替换所有的,即使某一行出现多个也都进行替换
    :g/s1/s//s2/gc回车 --替换所有的,并且在每一次替换之前都要询问用户去进行确认

 

6.vim键盘图

Linux常用命令学习6---(vim的使用)的更多相关文章

  1. Linux常用命令——文本编辑器Vim

    Linux常用命令--文本编辑器Vim Linux  Vim常用操作 插入命令 a 在光标所在字符后插入 A 在光标所在行尾插入 i 在光标所在字符前插入 I 在光标所在行首插入 o 在光标下插入新行 ...

  2. Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)

    紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令     简介      ...

  3. Linux常用命令学习

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  4. 五个知识体系之-Linux常用命令学习

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  5. Linux常用命令学习随笔

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  6. [转]Linux常用命令学习

    转自 https://www.cnblogs.com/gaojun/p/3359355.html 1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文 ...

  7. Linux常用命令学习5---(Shell编程)

    1.Shell概述    Shell是一个命令行解释器.它为用户提供了一个向Linux内核发送请求一以便运行程序的界面系统级程序,用户可以用 Shell来启动.挂起.停止甚至是编写一些程序    Sh ...

  8. Linux常用命令学习3---(文件的压缩和解压缩命令zip unzip tar、关机和重启命令shutdown reboot……)

    1.压缩和解压缩命令    常用压缩格式:.zip..gz..bz2..tar.gz..tar.bz2..rar .zip格式压缩和解压缩命令        zip 压缩文件名 源文件:压缩文件   ...

  9. Linux常用命令学习记录

    兄弟连Linux培训 ,小编整理了常用的Linux学习命令: 1 cp 拷贝命令 参数:-p 文件属性一起拷贝 -r 拷贝文件夹 -d 软链信息等一起拷贝 -a 是-rdp的简写 2 find 文件查 ...

随机推荐

  1. asp.net mvc后台操作之读写xml控制首页动态页面开关显示

    一.背景 在asp.net mvc项目里,用户需要开拓几个活动版面,并以侧栏的方式呈现在首页右侧,几个活动时间不一致,为避免浏览者在活动未开放之时进入未开放的服务页面.因此不仅需要在活动代码中加入限制 ...

  2. centos虚拟机网络桥接配置

    1.虚拟机设置->网络适配器->选择桥接模式->重启虚拟机 2.使用命令进行配置IP地址 (引用别人的配置命令) 修改/etc/sysconfig/network-scripts 目 ...

  3. sharedUserId

    android:sharedUserId sharedUserId的作用是让两个应用程序共享一个user id,我们都知道linux进程给每一个应用程序分配了一个独立的user id,所以如果两个或多 ...

  4. Mac上更新Ruby

    因为准备在项目中使用bootstrap,在安装bootstrap过程中提示需要Ruby的版本在1.9.2以上,而目前使用的Ruby版本是Mac系统自带的1.8.7.所以需要对Ruby进行升级.这里使用 ...

  5. VS2010 MFC对Excel的操作

    这是帮别人做项目遇到的一个问题,的那个是纠结了老长时间,本以为是一件很轻松的事... 首先,这里采用了OLE来对Excel进行操作,网上其实有大把的例子,虽然都可以运行,但是并不能满足项目要求,其实我 ...

  6. 表格不被内容撑大,且超出的内容变为省略号(css)

    今天写代码,发现表格会被内容撑大,影响到了网页的整体布局. 百度了一解决方法,下面是代码和我的备注 table{table-layout: fixed;}        //固定表格 table td ...

  7. linux重定向

    常用FD有3个,为0(stdin,标准输入).1(stdout,标准输出).2(stderr,标准错误输出),默认与keyboard.monitor有关: cmd > file 把 stdout ...

  8. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性

    http://blog.sina.com.cn/s/blog_621e24e20101cp64.html 为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图: 先简单说一下,从图中可 ...

  9. 【原】fiddler修改线上的内容

    摘要:当我们线上的代码出bug了,咋办呢?有时候本地的代码跟线上的代码还是运行环境还是有区别的.比如有些封装的方法需要运动到手机上可以调试,而浏览器是无法调试的.如果不想每次修改完再放上到测试环境看效 ...

  10. 30个要点帮你完成java代码优化

    通过java代码规范来优化程序,优化内存使用情况,防止内存泄露 可供程序利用的资源(内存.CPU时间.网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务.优化通常包含两方面的内容 ...