vim程序编辑器

vim基础知识

首先,vi和vim都是linux中的文本编辑器,但是vim可以看作是vi的高级版。

vim模式
一般情况下可以分为三种模式

  • 命令模式
    命令模式就是打开时默认的模式,在这种模式下我们是不能直接进行编辑的,不过我们可以使用方向键来移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等。

vim打开方式

选项功能
vim filename打开指定的文件,默认将光标置于第一行的首部,如果之前打开过则光标位于之前
vim +num filename打开指定的文件,并将光标移动到num行的首部
vim +/关键词 filename打开指定的文件,并且高亮显示这个关键词

将passwd这个文件先复制到家目录下,然后进行操作

[liyufeng@localhost ~]$ cp /etc/passwd ~/
[liyufeng@localhost ~]$ ls
Desktop  lixiaopang  公共  视频  文档  音乐
dir      passwd      模板  图片  下载  桌面
[liyufeng@localhost ~]$ vim /home/liyufeng/passwd

在这里插入图片描述
按shift+:q退出

[liyufeng@localhost ~]$ vim +5 /home/liyufeng/passwd

在这里插入图片描述

[lyufeng@localhost ~]$ vim +/login /home/liyufeng/passwd

在这里插入图片描述
命令模式下的光标移动操作

按键功能
shift+6光标移动到行首
shift+4光标移动到行尾
G光标移动到末行
num G光标移动到num行
num 上键以当前光标为准向上移动num行
num 下键以当前光标为准向下移动num行
num 左键以当前光标为准向左移动num个字符
num 右键以当前光标为准向右移动num个字符
PgUp或ctrl+b向上翻屏
PgDn或ctrl+f向上翻屏

命令模式下的复制粘贴操作

按键功能
yy复制光标所在行
num yy复制从光标所在行开始往下的num行(包含当前行)
dd剪切光标所在行,剪切后下一行会上移
num dd剪切从光标所在行开始往下的num行(包含当前行)
D删除光标所在行,剪切后下一行不会上移,此行是空白的
p粘贴
:u或者u撤销
ctrl取消之前的撤销操作

另外,也可以进入可视化界面来进行操作:ctrl+v
此时,最下面会显示可视块字样,然后就可以用上下左右来选择要复制的部分,再按y进行复制,按p进行粘贴,如果是按行复制就按yy
hnnn
按esc可退出可视化界面 两次esc则退出得更快

  • 输入模式
    也叫编辑模式,顾名思义可以对文件进行编辑操作。可以在命令模式下按i、o、a等进入编辑模式,按的键不同,光标所处的位置就不同
按键功能
i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I光标移动到行首再执行 i 命令
o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a在当前光标所在位置之后插入随后输入的文本
A光标移动到行尾再执行 a 命令
  • 末行模式
    可以通过按键把光标移动到最下面的那一行,在这个模式下,我们可以进行搜索、读取、保存、退出等功能
    光标移动:输入英文:,后面接行数,再按回车
    在这里插入图片描述
按键功能
:w保存文件(write)
:w 路径名另存为路径名
:q退出文件
:wq保存并且退出
:q!!表示强制,所以是不保存强制退出的意思

在末行模式下,也可以输入外部命令,比如在末行模式下想查看当前目录下的文件
输入:!外部命令即可
如输入 :!ls -la
在这里插入图片描述

在这里插入图片描述
查找和替换

按键功能
/关键词查找关键词
: s/搜索的关键词/新的内容替换光标所在行第一处符合条件的内容
: s/搜索的关键词/新的内容/g替换光标所在行全部符合条件的内容
: %s/搜索的关键词/新的内容替换整个文档中每行第一个符合条件的内容
: %s/搜索的关键词/新的内容/g替换整个文档中所有符合条件的内容

其中,%表示整个文件,g表示全局(global)
在这里插入图片描述
查找关键词之后,关键词会高亮显示,可以按N/n在搜索结果中切换上/下一个结果。然后这个是下一次打开也是会一直高亮,如果不想让它亮的话,就输入“:nohl”(no highlight)
在这里插入图片描述

vim三种模式的转换

在这里插入图片描述

着色控制
显示:“:syntax on”
取消显示:“:syntax off”

vim计算器
a.进入编辑模式
b.按下按键"ctrl+R",然后输入等号,在最后一行光标那里输入要计算的内容,按下回车

vim配置文件
vim的配置文件就是.vimrc,一般情况下分为全局配置文件(即系统配置文件)和个人配置文件,其中,个人配置文件是优先的

  • 全局配置文件,位于 Vim 的安装目录(默认路径为 /etc/.vimrc),这个是vim编辑器自带的
  • 用户配置文件,位于主目录 ~/.vimrc,通常情况下,Vim 用户配置文件需要自己手动创建

在家目录下创建配置文件, 在配置文件中输入内容,比如说想要所有文件都显示行号的话,那么就可以在配置文件中写入 “set nu”

[liyufeng@localhost ~]$ touch .vimrc

`在这里插入图片描述

vim文件异常退出解决办法
比如我正在修改之前那个家目录下的passwd时没有保存就关闭了机器,下次再想编辑时会有以下提示:

E325: 注意
            文件名: ~liyufeng/passwd
            修改过: 是
            用户名: liyufeng      主机名: localhost.localdomain
           进程 ID: 10028
正在打开文件 "passwd"
              日期: Fri Apr  8 22:34:02 2022

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    如果是这样,请用 ":recover""vim -r passwd"
    恢复修改的内容 (请见 ":help recovery")。
    如果你已经进行了恢复,请删除交换文件 ".passwd.swp"
    以避免再看到此消息。

交换文件 ".passwd.swp" 已存在!
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 删除交换文件((D)), 退出((Q)), 中>((A)):
-- 更多 --

解决办法:就在家目录下找到.passwd.swp

[liyufeng@localhost ~]$ ls -a
.              .bashrc  dir            .local       .vimrc  文档
..             .cache   .esd_auth      .mozilla     公共    下载
.bash_history  .config  hello.c        passwd       模板    音乐
.bash_logout   .dbus    .ICEauthority  .passwd.swp  视频    桌面
.bash_profile  Desktop  lixiaopang     .viminfo     图片
[liyufeng@localhost ~]$ 

把这个临时文件删掉

[liyufeng@localhost ~]$ rm -f .passwd.swp
[liyufeng@localhost ~]$ ls -a
.              .bash_profile  .dbus      hello.c        .mozilla  公共  文档
..             .bashrc        Desktop    .ICEauthority  passwd    模板  下载
.bash_history  .cache         dir        lixiaopang     .viminfo  视频  音乐
.bash_logout   .config        .esd_auth  .local         .vimrc    图片  桌面
[liyufeng@localhost ~]$ 

这样子就可以再次打开进行编辑了,但是要注意,问题虽然解决了,不过这个交换文件删除之后,之前的修改时没有生效的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值