vim命令笔记

jopen 12年前

一般模式:移动光标

h 或  ←                    #光标向左移动一个光标  j  或  ↓                    #光标向下移动一个光标  k 或  ↑                    #光标向上移动一个光标  l  或  →                    #光标向右移动一个光标  移动多行,30j 或者 30↓    Ctrl + f                    #向下移动一页  Ctrl + b                   #向上移动一页  Ctrl + d                   #向下移动半页  Ctrl + u                   #向上移动半页    +                           #移动到非空格的下一行  -                            #移动到非空格的上一行  n<space>               #n表示数字,20 + 空格,光标在所在行移动20个字符距离    0                           #数字0,移动到行的最前字符(常用)  $                           #移动到行尾(常用)    H                           #移动到屏的最上一行  M                           #移动到屏的中间一行  L                            #移动到屏的最下一行    G                           #移动到文件的最后一行(常用)  nG                          #n为数字,20G。移动到文件的第20行  gg                          #移动到文件第一行(常用)  n<Enter>                #n为数字。向下移动n行(常用)

一般模式:搜索与替换

/word                      #从光标开始,向下查找个名字为word的字符串。(常用)  ?word                      #从光标开始,向上查找个名字为word的字符串。   n                            #n为按键,重复前一个搜索动作  N                            #N为按键,重复与前一个搜索动作相反的操作    :n1、n2s/f_word/i_word/g    #从第一行和n2行,i_word替换f_word。例子:11、22s/find/inste/g  (常用)  :1、$s/f_word/i_word/g        #从第一行和最后一行,i_word替换f_word。(常用)  :1、$s/f_word/i_word/gc        #从第一行和最后一行,i_word替换f_word,且替换前提醒用户确认(常用)

一般模式:删除、复制与粘贴

x,X                        #x删除后一个字符,X删除前一个字符  nx                           #n为数字,连续向后删除n个字符  dd                          #删除整行(常用)  ndd                         #n为数字,向下删除n行  d1G                         #删除光标所在位置到第一行的所有数据  dG                          #删除光标所在位置到最后一行的所有数据  d$                          #删除光标所在位置到行尾的字符串  d0                          #删除光标所在位置到行首的字符串    yy                           #复制光标所在的那一行(常用)  nyy                         #n为数字,复制光标所在的向下n行。例:20yy(常用)  y1G                         #复制光标所在行到第一行  yG                           #复制光标所在行到最后一行  y$                           #复制光标到行尾的字符串  y0                           #复制光标到行首的字符串    p,P                        #p将复制内容粘贴到光标的下一行,P将复制内容粘贴到光标的上一行(常用)  J                             #将光标所在行与下一行结合成同一行  c                             #重复删除多个数据,例如 10cj

撤销和回复

u                            #复原前一个操作  Ctrl + r                    #重做上一个操作    .                             #这是个小点,重复前一个动作

进入编辑模式

i、I                          #插入,i 光标处插入,I 在当前第一个非空符处开始插入(常用)  a、A                        #a 当前光标下一个字符开始插入;A 从光标所在行最后一个字符处开始插入(常用)  o、O                        #o 当前光标下一行插入新的一行;O 光标上一行,插入新行(常用)  r、R                         #替换:r 替换光标所在那一个字符;R 一直替换所在文字,直到按下Esc键为止(常用)

退回一般模式

Esc                          # 退回一般模式

命令行命令模式

:w                            #写入硬盘  :w                            #强制写入该文件  :q                            #离开 vim  :q!                           #强制退出,不保留修改  :wq                          #写入,并退出    :e!                           #将文件还原到最原始状态    ZZ                           #若文件没有更改,则不存储离开;若修改,则存储后退出  :w [file name]           #将编辑内容存储到file name文件  :r  [file name]           #将file name文件写入光标所在行的后面    :n1、n2w[file name]   #将n1行到n2行写入到file name文件  :!command               #暂时离开vim到命令模式执行command。例 !ls /home  :set nu                    #显示行号  :set nonu                 #取消行号

块选择

v                            #字符选择,会将光标经过的地方反白选择  V                            #行选择,将光标经过的行反白选择  Ctrl + v                   #块选择,可以用长方形的方式选择数据  y                            #复制反白的地方  d                            #删除反白的地方

多文件编辑

:n                           #编辑下一个文件  :N                           #编辑上一个文件  :file                        #列出当前vim打开的所有文件

多窗口功能

:sp[file name]          #打开一个新的窗口,加filename,则新窗口打开新文件,否则内容同一  Ctrl + wj                  #先按Ctrl,再w,放开再按j,光标进入下一个窗口  Ctrl + wk                 #同上,方向相反  Ctrl + wq                 #当前的退出,跳到下个窗口

vim环境设置

:set nu                    #  :set hlsearch            #  :set backup              #  :set ruler                  #  :set showmode               #  :set backspace=(012)      #  :set all                           #  :syntax(off|on)               #

DOS与Linux的换符

dos2unix -kn    file   newfile  unix2dos -kn    file   newfile