Linux Day20:Vim

作者: 泥人吴 | 来源:发表于2018-11-06 23:21 被阅读16次

Vim编辑器

vi的使用

  • 鸟哥书籍:按键的说明、Vim的保存文件、恢复与打开时的警告信息
  • Vim编辑器:文本编辑器,字处理器
nano:全屏处理
sed:行处理
Vim:全屏处理器,模式化编辑器

# 快速定位到某行:vim +12 FILE
# 快速定位到最后一行:vim + FILE
# Vim+PATTERN:打开文件,定位到第一次被PATTERN匹配到的行的行首

vim的模式:

  • 编辑模式(命令模式)
  • 输入模式
  • 末行模式
  • 编辑模式-->输入:
  • i: 字符前面
  • a: `字符后面
  • o: 字符所在行下方,新建一行
  • I:行的行首
  • A:行的行尾
  • O:行的上方,新建一行
  • 关闭文件

1.末行模式关闭文件
:q 退出
:wq 保存并退出
:q! 不保存并退出
:w 保存
:w! 强行保存
:wq 同 :x
2. 编辑模式下退出
ZZ 保存并提出

移动光标

1.逐字字符移动:
h 👈
j 👉
k 👇
l👆
#h移动#个字符

2.以单词单位移动
w 下个单词行首
e 当前或下一个单词的词尾
b 当前或前一个单词词首
#w 移动#个单词

  1. 行内跳转:
    0 绝对行首
    ^行首的第一个非空白字符
    $绝对行尾

4.行间跳转:
#G 跳转至第#行
G 最后一行

5.翻屏
Ctrl+f 向下
Ctrl+b 向上
Ctrl+d 向下翻半屏
Ctrl+u 向上半屏

6.删除单个字符
x 三处光标所在的单个字符
#x 删除光标所在的向后的共#个字符

7.删除命令:d
d命令个跳转命令组合使用
#dw#de#db
dd:删除当前光标所在行
#dd:删除包括当前光标所在内的#行

  • 末行模式下:
    . : 表示当前行
    $:最后一行
    +# :向下的#行

8.黏贴命令 p
p

9.复制命令 y

  • 用法同d

10.先删除内容,再转换为输入模式
c:用法同d

11.替换r
R:替换模式

12.撤销编辑操作:u
表示:撤销前一次编辑操作
#u:直接撤销最忌#次操作。
撤销最近一次撤销:Ctrl+r

13.重复前一次编辑操作:.

14.查找
/pattern:首部向后查找
?pattern:当前光标向文件首部查找
nN表示下一个的意思。

15.查找并替换:
在末行模式下使用s命令

vim的功能

1.块选择

下载文件hostswegt http://linux.vbird.org/linux_basic/0310vi/hosts,然后利用vim进行编辑。
将光标移劢到第一行的 host 那个 h 上,然后按下 [ctrl]-v ,左下角出现区块示意字样:
v:按字符选取
V: 按矩形选取

$ vim hosts

192.168.1.1    host1.class.net
192.168.1.2    host2.class.net
192.168.1.3    host3.class.net
192.168.1.4    host4.class.net
192.168.1.5    host5.class.net
192.168.1.6    host6.class.net
192.168.1.7    host7.class.net
192.168.1.8    host8.class.net
192.168.1.9    host9.class.net
~                                                                                       
~                                                                                       
~                                                                                       
~                                                                                       
-- VISUAL BLOCK --                                                    1,16          All

此时你可以按下『y 』来进行行复制,当你按下 y 后,反白的区块就消失!

  1. 最后,将光标移到第一行行最右边,并且再用编辑模式向右按两个空格键,回到一般模式后,再按下『p 』后,如下图所示:
$ vim hosts

192.168.1.1    host1.class.net  host1
192.168.1.2    host2.class.net  host2
192.168.1.3    host3.class.net  host3
192.168.1.4    host4.class.net  host4
192.168.1.5    host5.class.net  host5
192.168.1.6    host6.class.net  host6
192.168.1.7    host7.class.net  host7
192.168.1.8    host8.class.net  host8
192.168.1.9    host9.class.net  host9
~                                                                                       
~                                                                                       
~

2.多文本编辑

  • 复制某个文件的部分内容到另一个文件
# 复制hosts前四行IP数据到/etc/hosts
$ vim hosts /etc/hosts
$ vim hosts /etc/hosts
2 files to edit

192.168.1.1    host1.class.net
192.168.1.2    host2.class.net
192.168.1.3    host3.class.net
192.168.1.4    host4.class.net
192.168.1.5    host5.class.net
192.168.1.6    host6.class.net
192.168.1.7    host7.class.net
192.168.1.8    host8.class.net
192.168.1.9    host9.class.net
~                                                                                                                   
~                                                                                       
"hosts" 9L, 279C                                                      1,1           All
# :files查看编辑的文件数据
~                                                                                       
~                                                                                       
:files
1 %a   "hosts"                        line 1
 2      "/etc/hosts"                   line 0
Press ENTER or type command to continue
# 按下任意键回到vim的一般模式
#想要复制前四行,输入4yy,显示如下
4 lines yanked  
# 输入:n来到第二个编辑文件
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
~                                                          ~  
#"G"定位到最后一行,"p"复制
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.1    host1.class.net
192.168.1.2    host2.class.net
192.168.1.3    host3.class.net
192.168.1.4    host4.class.net
:next 切换到下一个文件
:prev 切换到前一个文件
:last 切换到最后一个文件
:first 切换到第一个文件
#"u"还原原来的文件
#"q"离开vim的多文本编辑
`qa`:离开所有文件

3.多窗口功能:

  • 分屏显示一个文件
    Ctrl+w,s:水平拆分窗口
    Ctrl+w,v:垂直
    在窗口间切换光标
    Ctrl+w,方向键
  • 多窗口编辑多个文件
    vim -o :水平分割显示
    vim -O:垂直分割显示

以下末行模式下

  • 将当前文件中部分内容另存到另一个文件
    末行模式下使用w命令
    :w
    :ADDR1,ADDR2w /path/to/somewhere

  • 将另一个文件内容填充到目前文件下
    :r /path/to/somewhere

  • 跟shell交互
    :!COMMAND

高级话题

  • 显示或取消行号
    : set nu
    : set nonu
  • 显示忽略大小写或区分
    : set ic (ignorecase)
    : set noic (noignorecase)
  • 设置自动缩进
    : set atuoindent
    : set ai
    : set noai
  • 查找到的文本高亮显示或取消
    : set hlsearch
    : set nohlsearch
  • 语法高亮与关闭
    : syntax on
    : syntax off
  • 配置文件
    /etc/vimrc:全部用户
    ~/.vimrc:当前用户
#主要就是:sp{filename}的使用
$ vim /etc/man.config 

~                                                                                       
 # 在终端在视觉要明显很多                                                                                    
{hosts}                                                               0,0-1          All

~                                                                                                                                                                           
/etc/man.config                                                       0,0-1          All
"{hosts}" [New File]

4.vim的常用命令示意图

  • 最后附上无敌的vim的常用命令示意图
  • 记住:是一般模式下


    马哥

生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
请猛戳下面链接
B站链接:https://m.bilibili.com/space/338686099

YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists

生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA

学徒培养:https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw

相关文章

网友评论

    本文标题:Linux Day20:Vim

    本文链接:https://www.haomeiwen.com/subject/trcpxqtx.html