linux 下载 vi editor,Linux 编辑器(一)--vi(vim) -visual editor (improve)

启动vi(vim)

vi/vim filename:从filename第一行开始编辑,即光标默认停留在文件第一行第一个字符处;

+n filename:从第n行开始编辑;

+ filename:从最后一行开始编辑;

+/pattern filename:从第一个包含字符串“pattern”的行开始编辑。

-r filename:在系统崩溃后恢复filename;

-R filename:以只读方式编辑filename,等同于命令view filename。

vi的三种工作模式:命令模式(也称普通模式)、插入模式与末行模式(命令模式下输入:后进入)。

命令模式下的命令:

i:在当前光标插入文本;

I:在所在行行首插入文本;

a:在当前光标后添加文本;

A:在当前行尾添加文本;

k、方向键上:光标上移;

j、方向键下:光标下移;

-:光标到上一行的行首;

+:光标到下一行的行首;

h、Backspace、方向键左:光标左移;

l、Space、方向键右:光标右移;

0、^:光标到行首;

$:光标到行尾;

w:光标移到下一单词,标点符号视为单独一个单词;

W:与w相似,标点符号视为单词的一部分,以空格为分隔;

b:光标移到上一个单词;

B:与b相似,只以空格为间隔,无视标点符号;

e:光标移到当前单词末;

E:与e相似,无视标点符号;

(:光标移到上一个句子的开始;

):光标移到下一个句子的开始;

{:光标移到上一段落的开始;

}:光标移到下一段落的开始;

H:光标移到屏幕顶部第一行的最左端;

M:光标移到屏幕中间;

L:光标移到屏幕的尾部。

x、dl:删除当前字符;

X:删除当前光标左侧字符;

d0:从行的开始处删除;

D、d$:删除到行的末尾;

d^:从行开始的第1个字符开始删除(不包括空格和TAB);

dw:删除到单词的末尾;

d5w:删除到第5个单词的末尾;

dtc:删除到当前行字符c的下一次出现;

dfc:删除到当前行字符c的下一次出现(包括c);

d/word:删除到单词word的下一次出现;

d3{:从前面的第3段删除到当前位置;

d{:从本段的开始位置删除到当前位置;

db:从单词的开始处删除;

dW:删除到以空白为分隔的单词的末尾;

dB:从以空白为分隔的单词的首字符开始删除;

d5B:从以空白为分隔的前面第5个单词的首字符开始删除;

d):删除到句子的末尾;

d4):删除到第4个句子的末尾;

d}:删除到段落末尾;

d4}:删除到后面的第4段末尾;

dd:删除一行;

3dd:删除当前行开始的3行;

dL:删除到当前屏幕的最后一行(包括最后一行);

dH:从当前屏幕的第一行开始删除。

C:删除到行的末尾,并进入插入模式。

cxx:删除指定的内容并进入插入模式。xx后缀与d命令的后缀相同。

~:更改大小写;

3~:从当前字符开始更改3个字符的大小写;

s:用一个或多个字符替换当前光标位置处的字符;

S:用一个或多个字符替换当前行;

10s:用一个或多个字符替换当前字符开始的10个字符;

J:把当前行的末尾与下一行连接起来并以一个空格分隔,如果当前行以句点“.”结尾,则两行之间插入两个空格;

.:句点命令,重复执行最近一次的修改命令。

u:撤销上一次的编辑操作;

U:撤销对当前行的所有修改,将文本恢复到启动修改之前的状态

Ctrl+R:重复命令,即redo。

f:从当前光标开始查找指定的字符,并将光标移动到该字符出现的位置,可以d、c合用;

3fq:光标移到本行第三个字符q所在位置;

F:从本行开始位置到当前光标所在位置之间查找字符。

行号+G:定位到指定的行,若不指定行号,则默认定位到最后一行。

y:复制到通用缓冲区,与移动命令合用,如y2l,与d、c后缀相同。yy复制一行,3yy复制3行;

Y:等同于yy。

p:把通用缓冲区的内容粘贴到当前位置,删除命令或复制命令都会把文本存入通用缓冲区中;

P:把通用缓冲区的内容粘贴到当前字符之前。

Ctrl+G:显示文件状态。

ZZ:保存并退出。

/+字符串:查找字符串;

n:向后重复上一次搜索;

N:向前重复上次搜索。

Ctrl+w+s:水平拆分窗口;

Ctrl+w+n:打开新窗口编辑一个空文件;

Ctrl+w+w:实现在多个窗口之间的切换。

Ctrl+L:重绘屏幕。

Ctrl+y:向上滚一行;

Ctrl+e:向下滚一行;

Ctrl+u:向上滚动半屏;

Ctrl+d:向下滚动半屏;

Ctrl+b:向上滚动整屏;

Ctrl+f:向下滚动整屏。

末行模式下的命令

: [address] r [filename]:把文件内容插入到当前缓冲区,address可以是行号,未指定行号时默认插入到当前光标所在行的下方,未指定文件名时默认再次读入当前文件;

: [address] w [filename]:把缓冲区的部分或全部内容写入到磁盘,例::3,8 w temp把3~8行的内容写加到temp文件里。:4,10 w >> temp把4~10行内容追加到temp文件里;

:f:显示文件状态,等同于命令模式下的Ctrl+G。

:undo:撤消命令,等同于命令模式下的u;

:redo:重复命令,等同于命令模式下的Ctrl+R。

:w:保存缓冲区的内容,但不退出;

:w filename:另存为;

:q:退出;

:wq:保存并退出;

:q!:不保存而退出。

:set noincsearch:设置普通查找,当输入/+字符串并按回车键开始查找;

:set incsearch:设置增量查找,每输入一个字符vi便高亮显示匹配的位置。

:[g] [address] s/search/replacement [/option]:替换字符串。g表示对所有匹配结果进行替换,否则只对第一次查找结果进行替换。address表示查找的范围,不指定则只搜索当前行。

:split:窗口水平拆分,可以多次拆分;

:split filename:水平拆分窗口,并在新窗口中载入指定文件;

:vsplit:窗口垂直拆分;

:vsplit filename:垂直拆分窗口,并载入指定文件。

:only:关闭除当前窗口之外的窗口;

:q:关闭当前窗口;

:qall:关闭所有窗口。

:sh:启动一个Shell,在该Shell里输入exit或Ctrl+d退出Shell回到vi;

:!command:执行外部命令。

:'标记:字符“'”,标记当前行,例::'t把该行标记成t;(博主用该命令时得到错误“E20 没有设定标记”。)

:`标记:字符“`”,使用标记,例如标记t存在时,命令:d't删除该行。

:help:获得帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值