• Linux


    一 Vim 简单介绍

    曾经一直用vi,近期開始使用 vim,以下将两者做一下比較。

    vi和vim都是多模编辑器,不同的是vim 是vi的升级版本号,它不仅兼容vi的全部指令,并且另一些新的特性在里面。


    vim的这些优势主要体如今下面几个方面:
    1、多级撤消
    在vi里,按 u仅仅能撤消上次命令,而在vim里能够无限制的撤消。
    2、易用性
    vi仅仅能执行于unix中,而vim不仅能够执行于unix,windows ,mac等多操作平台。
    3、语法加亮
    vim能够用不同的颜色来加亮你的代码。
    4、可视化操作
    就是说vim不仅能够在终端执行。也能够执行于x window、 mac os、 windows。


    5、对vi的全然兼容
    某些情况下,你能够把vim当成vi来使用。


    二 安装

    使用一下命令  #sudo apt-get install vim


    三 配置

    vim默认的配置使用起来还不能让人惬意,还须要自己配置
    默认配置文件是:/etc/vim/vimrc
    我们能够在家文件夹下建立自己的配置文件
    切换到家文件夹 

    #cd ~
    #vi .vimrc


    输入下面配置:
    set nocompatible         #不使用vi默认键盘布局   
    set number               #显示行号
    set autoindent           #自己主动对齐
    set smartindent          #智能对齐
    set showmatch            #括号匹配模式
    set ruler                #显示状态行
    set incsearch            #查询时很方便。如要查找book单词,当输入到/b时。会自己主动找到   第一个b开头的单词,当输入到/bo时。会自己主动找到第一个bo开头的单词,依次类推,进行查找时。使用此设置会高速找到答案。当你找要匹配的单词时,别忘记回车.
    set tabstop=4            #tab键为4个空格
    set shiftwidth=4        #换行时行间交错使用4个空格
    set softtabstop=4       #设置(软)制表符宽度为4
    set cindent              #C语言格式对齐
    set nobackup             #不要备份文件
    set clipboard+=unnamed   #与windows共享剪贴板

    四 经常使用命令

    1.移动光标

    1、左移h、右移l、下移j、上移k

    2、向下翻页ctrl + f,向上翻页ctrl + b

    3、向下翻半页ctrl + d。向上翻半页ctrl + u

    4、移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^

    5、移动光标到下一个句子 )。移动光标到上一个句子(

    6、移动到段首{,移动到段尾}

    7、移动到下一个词w,移动到上一个词b

    8、移动到文档開始gg,移动到文档结束G

    9、移动到匹配的{}.().[]处%

    10、跳到第n行 ngg 或 nG 或 :n

    11、移动光标到屏幕顶端H。移动到屏幕中间M,移动究竟部L

    12、读取当前字符,并移动到本屏幕内下一次出现的地方 *

    13、读取当前字符,并移动到本屏幕内上一次出现的地方 #


    2. 查找替换

    1、光标向后查找keyword #或者g#

    2、光标向前查找keyword *或者g*

    3、当前行查找字符 fx, Fx, tx, Tx

    4、基本替换 :s/s1/s2 (将下一个s1替换为s2)

    5、所有替换 :%s/s1/s2

    6、仅仅替换当前行 :s/s1/s2/g

    7、替换某些行 :n1,n2 s/s1/s2/g

    8、搜索模式为 /string,搜索下一处为n,搜索上一处为N

    9、制定书签 mx, 可是看不到书签标记。并且仅仅能用小写字母

    10、移动到某标签处 `x,1旁边的键

    11、移动到上次编辑文件的位置 `.


    PS:.代表一个随意字符 *代表一个或多个字符的反复

              正則表達式的内容将会在兴许文章中整理


    3.编辑操作

    1、光标后插入a, 行尾插入A

    2、后插一行插入o,前插一行插入O

    3、删除字符插入s。 删除正行插入S

    4、光标前插入i。行首插入I

    5、删除一行dd,删除后进入插入模式cc或者S

    6、删除一个单词dw。删除一个单词进入插入模式cw

    7、删除一个字符x或者dl,删除一个字符进入插入模式s或者cl

    8、粘贴p,交换两个字符xp。交换两行ddp

    9、复制y,复制一行yy

    10、撤销u,重做ctrl + r,反复.

    11、智能提示 ctrl + n 或者 ctrl + p

    12、删除motion跨过的字符,删除并进入插入模式 c{motion}

    13、删除到下一个字符跨过的字符。删除并进入插入模式,不包含x字符 ctx

    14、删除当前字符到下一个字符处的全部字符,并进入插入模式。包含x字符,cfx

    15、删除motion跨过的字符,删除但不进入插入模式 d{motion}

    16、删除motion跨过的字符,删除但不进入插入模式,不包含x字符 dtx

    17、删除当前字符到下一个字符处的全部字符。包含x字符 dfx

    18、假设仅仅是复制的情况时。将12-17条中的c或d改为y

    19、删除到行尾能够使用D或C

    20、拷贝当前行 yy或者Y

    21、删除当前字符 x

    22、粘贴 p

    23、能够使用多重剪切板。查看状态使用:reg。使用剪切板使用”。比如拷贝到w寄存器,”wyy,或者使用可视模式v”wy

    24、反复运行上一个作用使用.

    25、使用数字能够跨过n个区域,如y3x,会拷贝光标到第三个x之间的区域,3j向下移动3行

    26、在编写代码的时候能够使用]p粘贴,这样能够自己主动进行代码缩进

    27、 >> 缩进全部选择的代码

    28、 << 反缩进全部选择的代码

    29、gd 移动到光标所处的函数或变量的定义处

    30、K 在man里搜索光标所在的词

    31、合并两行 J

    32、若不想保存文件,而又一次打开 :e!

    33、若想打开新文件 :e filename。然后使用ctrl + ^进行文件切换


    4. 窗体操作

    1、分隔一个窗体:split或者:vsplit

    2、创建一个窗体:new或者:vnew

    3、在新窗体打开文件:sf {filename}

    4、关闭当前窗体:close

    5、仅保留当前窗体:only

    6、到左边窗体 ctrl + w, h

    7、到右边窗体 ctrl + w, l

    8、到上边窗体 ctrl + w, k

    9、到下边窗体 ctrl + w, j

    10、到顶部窗体 ctrl + w, t

    11、究竟部窗体 ctrl + w, b


    5. 宏操作

    1、開始记录宏操作q[a-z],按q结束,保存操作到寄存器[a-z]中

    2、@[a-z]运行寄存器[a-z]中的操作

    3、@@运行近期一次记录的宏操作


    6. 可视操作

    1、进入块可视模式 ctrl + v

    2、进入字符可视模式 v

    3、进入行可视模式 V

    4、删除选定的块 d

    5、删除选定的块然后进入插入模式 c

    6、在选中的块同是插入同样的字符 I<String>ESC


    7. 跳到声明

    1、[[ 向前跳到顶格第一个{  

    2、[] 向前跳到顶格第一个}

    3、]] 向后跳到顶格的第一个{

    4、]] 向后跳到顶格的第一个}

    5、[{ 跳到本代码块的开头

    6、]} 跳到本代码块的结尾


    8. 挂起操作

    1、挂起Vim ctrl + z 或者 :suspend

    2、查看任务 在shell中输入 jobs

    3、恢复任务 fg [job number](将后台程序放到前台)或者 bg [job number](将前台程序放到后台)

    4、运行shell命令 :!command

    5、开启shell命令 :shell。退出该shell exit

    6、保存vim状态 :mksession name.vim

    7、恢复vim状态 :source name.vim

    8、启动vim时恢复状态 vim -S name.vim

    使用思维导图进行展示:



  • 相关阅读:
    装饰器
    异常处理与断言
    例子:对象构造函数指定类型传入参数(描述符与装饰器的应用)
    Python的描述符
    全新开始fighting
    函数相关知识
    集合的介绍以及简单方法
    列表,元组,字典类的常见简单方法
    Python简单字符串函数介绍
    聚合函数及分组查询及F&Q
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6805168.html
Copyright © 2020-2023  润新知