文章目录
  1. 1. vi的三种模式
  2. 2. 按键说明
    1. 2.1. 一般模式
      1. 2.1.1. 光标移动
      2. 2.1.2. 查找与替换
      3. 2.1.3. 删除,复制与粘贴
    2. 2.2. 一般模式切换到编辑模式的按键说明
    3. 2.3. 一般模式切换到命令模式可用的按键使用
    4. 2.4. vim的块选择
    5. 2.5. vim的多文件编辑
    6. 2.6. vim的多窗口功能
  3. 3. DOS与linux的断行字符
  4. 4. 语系编码转换

vi的三种模式

  1. 一般模式

    默认打开文件的模式。在这个模式中你可以移动光标,可以删除字符或删除整行,也可以复制,粘贴你的文件数据

  2. 编辑模式

    在一般模式中,按下”i,I,o,O,a,A,r,R“等任何一个字母进入编辑模式,在按下这些按键时,在界面的左下方会出现INSERT或REPLACE字样,如果要回到一般模式,则必须按下[ESC]键

  3. 命令行模式

    在一般模式中。输入”:,/,?“冒号,左斜线,问号,3个中的任何一个按键就可以将光标移动到最下面一行。在这个模式当中,可以提供你查找数据的操作,而读取,保存,大量替换字符,离开vi,显示行号等操作则是在此模式中完成的。

    按键说明

一般模式

可用的按键说明,光标移动,复制粘贴,查找替换等

光标移动

h 左移一个字符

j 下移一个字符

k 上移一个字符

l 右移一个字符

如果想进行多次移动,如下移30行,可以使用30j的组合键

ctrl + f 屏幕向下移动一页,相当于 pagedown

ctrl + b 屏幕向上移动一页,相当于 pageup

ctrl + d 屏幕向下移动半页

ctrl + u 屏幕向上移动半页

0或功能键home: 移动到这一行的最前面字符处

$或功能键end :移动到这一行的最后字符处

H 光标移动到这个屏幕最上方的第一个字符处

M 光标移动到这个屏幕中央的那一行的第一个字符

L 光标移动到这个屏幕的最下方的那一行的第一个字符

G 移动到这个文件的最后一行(常用)

nG: n为数字,移动这个文件的第n行

gg: 移动到这个文件的第一行,相当于1G

N[Enter]: n为数字,光标向下移动n行(常用)

查找与替换

/word 向下寻找一个名称为word的字符串

?word 向上寻找一个名称为word的字符串

n 这个n是英文按键,代表重复前面一个查找的动作

N 这个N是英文按键,与n刚好相反,为”反向“进行前一个查找操作

:n1,n2s/word1/word2/g n1与n2为数字,在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2.如,在100到200行之间寻找vbird并替换成VBIRD则用:100,200s/vbird/VBIRD/g

:1,$/word1/word2/g 从第一行到最后一行查找word1字串,并将它替换为word2

:1,$/word1/word2/gc 从第一行到最后一行查找word1字串,并将它替换为word2,且在替换前提示用户确定是否需要替换(常用)

删除,复制与粘贴

x,X 在一行字当中,x为向后删除一个字符,X为向前删除一个字符(常用)

nx n为数字,连接向后删除n个字符,如10x

dd 删除光标所在的一行

ndd n为数字,删除光标所在的向下n行

d1G 删除光标所在到第一行的所有数据

dG 删除光标所在到最后一行的数据

d$ 删除从光标所在到最后一个字符

d0 数字0,删除从光标所在处到该行的最前面一个字符

yy 复制光标所在一行64G:

nyy n为数字,复制光标所在的向下n行

y1G 复制光标所在行到第一行所的数据

yG 复制光标所在行到最后一行的所有数据

y0 复制光标所在处到该行行首的所有数据

y$ 复制光标所在处到该行行尾的所有数据

p,P p为将已复制的数据在光标下一行粘贴,P则为光标上一行:

J 将光标所在行和下一行数据合成一行

c 重复删除多个数据,例如向下删除10行 10c

u 复原前一个操作(常用)

Ctrl +r 重做上一个操作

. 小数点,重复前一个操作的意思

一般模式切换到编辑模式的按键说明

i,I 进入插入模式,i为从目前光标的在处插入,I为在目前的所在行的非空格符处开始插入。

r,R 进入替换模式 r只会替换光标的那个字符一次,R会一直替换光标所在的文字,直到按下ESC键为止。

一般模式切换到命令模式可用的按键使用

:w 将编辑的数据定入硬盘文件

:w! 强制写入

:q 离开vi

: q! 若修改过文件,又不想保存,可以强制离开不保存文件

:wq 保存后离开

:wq! 强制保存后离开

:w[filename] 将编辑的数据保存为另一个文件 (类似于另存文件)

:r[filename] 在编辑的数据中,读入另一个文件的数据,将filename这个文件的内容加到光标所在行后面

:n1,n2 w [filename] 将n1到n2行的内容保存成filename这个文件

:!command 暂时离开vi到命令模式下执行comand的显示结果,如”:!ls/home“ 即可在vi当中查看/home下面的ls输出的文件信息

:set nu 显示行号

:set nonu 与set nu 相反,取消行号

在一般模式下按下Ctrl+Z,vim会被丢到后台去执行

vim的块选择

v 字符选择,会将光标经过的地方反白选择

V 行选择 ,会将光标经过的地方反白选择

Ctrl +v 块选择,可以用长方形的方式选择数据

y 将反白的地方复制起来

d 将反白的地方删除

p 将复制的粘贴

vim的多文件编辑

:n 编辑下一个文件

:N 编辑上一个文件

:files 列出目前这个vim的打开的所有文件

如同时打开两个文件:vim 文件一 文件二

vim的多窗口功能

在命令模式输入:sp{filename},那个filename可有可无,如果想要在新窗口启动另一个文件,就加文件名,否则仅输入:sp时,出现的则是同一个文件在两个窗口

ctrl +w+向下功能键 向上功能键 光标在窗口间移动

ctrl + w + q 结束离开

DOS与linux的断行字符

dos2UNIX [-kn] file [newfile]

UNIX2dos [-kn] file [newfile]

-k 保留该文件原本的mtime时间

-n 保留原本的旧文件,将转换后的内容输出到新文件

语系编码转换

iconv --list 列出所有编辑

iconv -f 原本编码 -t 新编码 filenname [-c newfile]

-f from 后接原本的编码

-t to后接新编码格式

-o file 如果要保留原本的文件,那么使用-o新文件名,建立新编码文件

文章目录
  1. 1. vi的三种模式
  2. 2. 按键说明
    1. 2.1. 一般模式
      1. 2.1.1. 光标移动
      2. 2.1.2. 查找与替换
      3. 2.1.3. 删除,复制与粘贴
    2. 2.2. 一般模式切换到编辑模式的按键说明
    3. 2.3. 一般模式切换到命令模式可用的按键使用
    4. 2.4. vim的块选择
    5. 2.5. vim的多文件编辑
    6. 2.6. vim的多窗口功能
  3. 3. DOS与linux的断行字符
  4. 4. 语系编码转换