linux--vi和vim的详细使用

vi

1 常用按键组合

1.1 光标移动

  • 【page down】 下一页
  • 【page up】上一页
  • 【home】光标移动到该行第一个字符
  • 【end】光标移动到该行最后一个字符
  • 【G】该文件最后一行
  • 【gg】该文件首行

1.2 搜寻和取代

  • /word 向光标之下寻找一个叫word的字符串
  • ?word 向光标之上寻找一个叫word的字符串
  • 【n】重复上一个搜寻动作
  • 【N】和n相反,表示反向进行上一个动作
  • :n1,n2s/word1/word2/g 在n1和n2行之间寻找word1这个字符串,并将其取代为word2
  • :1,$s/word1/word2/g 在全文寻找word1这个字符串,并将其取代为word2
  • :1,$s/word1/word2/g 在全文寻找word1这个字符串,并提示用户是否将其取代为word2

1.3 删除 复制粘贴(在非编辑状态下)

  • 【dd】删除游标所在的一整行。
  • 【ndd】向下删除n行。
  • 【d1G】删除光标所在到第一行的所有数据。
  • 【dG】删除光标所在到最后一行的所有数据。
  • 【yy】复制游标所在的那一行。
  • 【u】复原上一个动作,也就是撤回。
  • 【CTRL+r】重复上一个动作。

1.4 指令列模式下的常用按钮

  • 【ZZ】 文件没有更动,则不存储离开,如果有改变,则保存后离开。
  • 【:w [filename] 】将编辑后的内容保存成另一个文件。
  • 【:r[filename] 】将该文件内容写入到从游标所在位置开始的后面。
  • 【:n1,n2 w [filename] 】将n1行到n2行的内容存储成filename这个文件。

vim

1 同时编辑多文本文件

vim 文件1 文件2
:n 切换到下一个文件
:N 切换到上一个文件
:files 列出这个vim正在编辑的所有文件

2 分区窗口

也就是说,一个窗口显示多个文件或者一个文件分区显示

vim file1
:sp[filename] 开启新分区打开文件,如果不写filename 默认将该文件再次打开。
【ctrl+w+向上箭头/向下箭头】 光标在文件之间的切换。
【ctrl+w+q】 结束离开该分区,或者直接保存退出。

如下:
在这里插入图片描述

3 补全功能

ctrl+x  ->  ctrl+n 内容补全(文件中反复出现的,会有提示)。
ctrl+x  ->  ctrl+o 以扩展名作为语法补充,以vim内建的关键字予以补充。

在这里插入图片描述

vim 环境设定和记录: ~/.vimrc,~/.viminfo

我们每次的vim操作都会记录在~/.viminfo中。
vim的设置一般放在/etc/vimrc下,但是一般不建议去修改它,而是在~目录下新建.vimrc

在这里说几个常用的vim设定:

:set nu 设置行号
:set nonu 取消行号

vi和vim的中文乱码问题

要考虑的地方:
1 首先linux系统默认支持的语系数据 查看 /etc/locale.conf。
在这里插入图片描述
2 你的终端界面(bash)的语系,这与LANG和LC_ALL这几个变数有关。
3 你的文件原来的编码方式。
4 开启终端机的软件,例如在GNOME底下的窗口接口。

一般出现的问题都在3和4上,3和4的编码不一致导致。
4的问题的修改,比如目前文件的编码是big5,那么修改终端机软件的编码如下:
在这里插入图片描述

编码方式的转换

1首先查看该文件的编码方式

方式1:

在vim下使用
:set fileencoding

在这里插入图片描述如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照 fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

方式2:
enca (如果你的系统中没有安装这个命令,可以用sudo yum install -y enca 安装 )查看文件编码
在这里插入图片描述

2 编码方式的转换

  1. 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
  1. enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv -L zh_CN -x UTF-8 filename
  1. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile

在这里插入图片描述在这里插入图片描述

选项和参数:
在这里插入图片描述

发布了157 篇原创文章 · 获赞 77 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/wu2374633583/article/details/101908830