Linux 之 Vim 命令使用(详细总结)

linux 之 vim 命令使用(详细总结)

在vim的普通模式下,可以使用“ggdG”命令删除全部内容。其他相关命令包括:

1、vim 编辑器简介

vim 是一个全屏幕纯文本编辑器,是 vi 编辑器的增强版。你可以利用别名让输入 vi 命令的时候,实际上执行 vim 编辑器,vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的工具,vim编辑器成为Linux运维不可或的工具之一。

[root@hepingfly ~]# alias vi='vim'

但是这样定义别名是临时生效,如果需要永久生效,请放置环境变量配置文件    ~/.bashrc   中

2、vim 基本使用

1)、vim 的工作模式

命令模式:是主要输入快捷键的模式。命名模式要想进入输入模式,可以使用 a i o 等快捷键来进入。

插入命令:

输入模式:主要用于文本编辑,和记事本类似,输入数据就好

末行模式(编辑模式):

  • :w 保存不退出
  • :w 新文件名 把文件另存为新文件
  • :q 不保存退出
  • :wq 保存退出
  • :! 强制
  • :q! 强制不保存退出,用于修改文件之后,不保存数据退出
  • :wq! 强制保存退出,当文件的所有者或 root 用户,对文件没有写权限的时候,强制写入数据使用

3、命令模式操作

1、移动光标

1)、上下左右移动光标

上、下、左、右方向键 移动光标
h(左) j(下) k(上) l(右) 移动光标

2)、光标移动到文件头或文件尾

gg 移动到文件头
G 移动到文件尾(shift + g)

3)、光标移动到行首或行尾

^ 移动到行首
$ 移动到行尾

4)、移动到指定行

:n 移动到第几行(这里的 n 是数字)

2、删除或剪切

1)、删除字母

x 删除单个字母
nx 删除 n 个字母(n 是数字,如果打算从光标位置连续删除 10 个字母,可以使用 10x 即可)

2)、删除整行或剪切

dd 删除单行
ndd 删除多行
:n1,n2d 删除指定范围的行

删除行或多行,是比较常用的删除方法。这里的 dd 快捷键既是删除也是剪切。删除内容放入了剪切板,如果不粘贴就是删除,粘贴就是剪切。粘贴方法:

p 粘贴到光标下面一行
P 粘贴到光标上面一行

3)、从光标所在行删除到文件尾

dG 从光标所在行删除到文件尾(d 是删除行,G 是文件尾,连起来就是从光标行删除到文件尾)

3、复制

vi/vim复制粘贴命令

yy(复制整行)

nyy(nyy复制多行)

Linux/Unix/BSD

1. 选定文本块。使用v进入可视模式,移动光标键选定内容。

2.复制的命令是y,即yank(提起) ,常用的命令如下:

    y      在使用v模式选定了某一块的时候,复制选定块到缓冲区用;

    yy    复制整行(nyy或者yny ,复制n行,n为数字);

    y^   复制当前到行头的内容;

    y$    复制当前到行尾的内容;

    yw   复制一个word (nyw或者ynw,复制n个word,n为数字);

    yG    复制至档尾(nyG或者ynG,复制到第n行,例如1yG或者y1G,复制到档尾)

   3. 剪切的命令是d,即delete,d与y命令基本类似,所以两个命令用法一样,包括含有数字的用法.

    d      剪切选定块到缓冲区;

    dd    剪切整行

    d^    剪切至行首

    d$     剪切至行尾

    dw    剪切一个word

    dG     剪切至档尾

   4. 粘贴的命令式p,即put(放下)

    p      小写p代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面

    P      大写P代表贴至游标前(上)

    整行的复制粘贴在游标的上(下)一行,非整行的复制则是粘贴在游标的前(后)

注:

     在正则表达式中,^表示匹配字符串的开始位置,$表示匹配字符串的结束位置。

     命令前面加数字表示重复的次数,加字母表示使用的缓冲区名称。使用英文句号"."可以重复上一个命令。

     在复制粘贴时,另一组常用的命令是u(撤销操作),U(撤销某一行最近所有修改),Ctrl+R(重做),这些功能主要是vim中的,vi中略有差别

复制之后的粘贴依然可以使用 p 键或 P 键

4、撤销

u 撤销
ctrl + r 反撤销

u 键能一直撤销到文件打开时的状态,ctrl + r 能一直反撤销到最后一次操作状态

5、替换

r 替换光标所在处的字符
R 从光标所在处开始替换字符,按 esc 键结束

4、末行模式操作

1、一些设置操作

设置参数含义:set nu

:set nonu显示与取消行号:syntax on

:syntax off是否依据语法显示相关颜色帮助。默认会显示相关颜色来帮助排错:set hlsearch

:set nohlsearch设置是否将查找的字符串高亮显示。默认是高亮显示:set showmode

:set noshowmode设置是否在左下角显示如“-INSERT-” 之类的状态栏。默认是开启的:set list

:set nolist设置是否显示隐藏字符。(tab 键用 "^I" 表示,回车符用 "$" 键表示)

注:

  • 上面设置的参数都只是临时生效,一旦关闭文件再打开,又需要重新输入。如果想要永久生效,需要手动建立 vim 的配置文件 ==“~/vimrc”== ,把你需要的参数写入配置文件就永久生效了。
  • Windows 下回车符在 Linux 中是用 “^M$” 显示的,而不是 “$” 。这样会导致 Windows 下编辑的程序脚本(如 shell 脚本),无法在 Linux 中执行。这时可以通过命令 ==「dos2unix」==,把 windows 格式转换为 Linux 格式。同样可以使用 ==「unix2dos」== ,把 Linux 格式转换为 Windows 格式。这两个命令默认没有安装,需要手动安装才能使用。

2、查找

/查找内容 从光标所在行向下查找
?查找内容 从光标所在行向上查找
n 下一个
N 上一个

3、替换

:1,10s/old/new/g 替换 1 到 10 行所有 old 为 new(s 表示替换)
:%s/old/new/g 替换整个文件的 old 为 new(% 是一个变量,在这里代表整篇文档)

在 shell 中 "#" 开头是注释,假如说我想注释文件前 10 行,如果手工一个一个注释会很麻烦,可以使用替换来解决。

:1,10s/^/#/g 注释 1 到 10 行
:1,10s/^#//g 取消 1 到 10 行的注释

5、vim 使用技巧

1、导入其他文件的内容

:r 文件名 把文件内容导入到光标位置

:r /root/aa.txt              #末行模式下,输入这个会把 /root/aa.txt 文件的内容加到你光标所在处

2、在 vim 中执行系统命令

:!命令 在 vim 中执行系统命令

这里只是在 vim 中执行系统命令,但并不把系统命令的结果写入到文件中。主要用于在文件编辑中,查看系统信息,如时间。

3、导入命令结果

:r !命令 在 vim 中执行系统命令,并把命令结果导入光标所在行

4、多文件打开

在 vim 中可以同时打开两个文件

[root@hepingfly ~]# vim -o aa.txt abcd               上下分屏打开两个文件(小 o)

[root@hepingfly ~]# vim -O aa.txt abcd               左右分屏打开两个文件(大 O)

如果是上下打开两个文件,可以通过先按 「ctrl + w」再按上下箭头的方式在两个文件之间切换。

如果是左右打开两个文件,可以通过先按 「ctrl + w」再按左右箭头的方式在两个文件之间切换。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux运维老纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值