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