Linux 基础知识(六.一)

一、模式及模式间的切换

(一)模式介绍
1、vim文本编辑器提供了三种基本模式,分别是编辑模式(命令模式)、输入模式以及末行模式(命令行模式)

(二)模式间的切换
4 Circles(1).png
二、基础操作
(一)单文件的打开与关闭
1、单文件的打开:vim [options]… /path/to/somefile

2、单文件打开时的常用选项:
(1)+#:表示当文件打开时,直接让光标处于第#行的行首
(2)+/pattern:表示当文件打开时,直接让光标处于第一个被pattern匹配到的行的行首

3、如何在单文件打开时,实现多窗口功能?
    ctrl+w松开后,按s,将单个窗口按照水平方式进行分割
    ctrl+w洞开后,按v,将单个窗口按照垂直方式进行分割

4、单文件的关闭和另存为:
(1)ZZ:保存并退出
(2)wq:保存并退出
(3)x:保存并退出
(4)q:直接退出,不保存对文件内容的修改
(5)q!:强制直接退出
(6)w /path/to/somefile:另存为至somefile

(二)多文件的打开与关闭

1、多文件的打开:vim [options]… /path/to/somefile1 /path/to/somefile2 /path/to/somefile3

2、多文件打开时的常用选项:
(1)-o:以水平分割多个窗口的形式打开多个文件
(2)-O:以垂直分割多个窗口的形式打开多个文件

3、如何在多个文件之间进行来回切换?
(1):next 切换至下一个文件
(2):prev 切换至上一个文件
(3):first 切换至第一个文件
(4):last 切换至最后一个文件

4、多文件的关闭:
(1)如果对其中一个文件进行关闭,即使用单文件的关闭方法即可
(2)如果对多个文件同时进行关闭,具体方法如下:
    • wqall:保存所有文件并且退出
    • qall:退出所有文件,但不保存

三、编辑模式

(一)如何操纵光标?
1、字符间的光标跳转
(1)上下左右方向键
(2)k(上),j(下),h(左),l(右)
注意:以上2种字符间的光标跳转的方式,都可以在其前加上一个数字,表示需要跳转的字符的个数

2、单词间的光标跳转
(1)w:跳转至下一个单词的词首
(2)e:跳转至当前光标所在处的单词的词尾,或者光标所在处之后的一个单词的词尾
    • # This all seem confusing? Look in /etc/sysconfig/init,
      • 上述文本光标处在This的T处,在执行了“e”之后,光标会跳转至This的s处
        • # This all seem confusing? Look in /etc/sysconfig/init,
    • # This all seem confusing? Look in /etc/sysconfig/init,
      • 上述文本光标处在This后的空白字符处,在执行了“e”之后,光标会跳转至all的第二个l处
        • # This all seem confusing? Look in /etc/sysconfig/init,
(3)b:跳转至当前光标所在处的单词的词首,或者光标所在处之前的一个单词的词首
    • # This all seem confusing? Look in /etc/sysconfig/init,
      • 上述文本光标处在This的s处,在执行了“b”之后,光标会跳转至This的T处
        • # This all seem confusing? Look in /etc/sysconfig/init,
    • # This all seem confusing? Look in /etc/sysconfig/init,
      • 上述文本光标处在This后的空白字符处,在执行了“b”之后,光标会跳转至This的T处
        • # This all seem confusing? Look in /etc/sysconfig/init,
        注意:以上3种单词间的光标跳转的方式,都可以在其前加上一个数字,表示需要跳转的单词的个数

3、如何跳转至行首OR行尾?
(1)^:直接跳转至行首的第一个空白字符
(2)0:直接跳转至首行
(3)$:直接跳转至尾行

4、如何在行间进行跳转?
(1)#G:“#”表示数字,“G”表示需要跳转至的行的行号
(2)1G:跳转至第一行,即首行
(3)G:跳转至最后一行,即尾行

5、如何进行翻页?
(1)ctrl+f:向文件尾部翻一页
(2)ctrl+b:向文件首部翻一页
(3)ctrl+d:向文件尾部翻半页
(4)ctrl+u:向文件首部翻半页
(5)Enter键:向文件尾部移动一行

(二)编辑命令 –> 主要针对于字符进行操作
1、删除命令
(1)x:删除光标所在处的字符
(2)2x:删除从光标所在处开始的2个字符
(3)xp:交换光标所在处的字符与其后面的字符的位置
(4)d:结合光标跳转字符,可以实现范围删除,具体如下:
    • d$:删除光标所在处至行尾之间的所有字符
    • d^:删除光标所在处至行首之间的所有字符
    • dw:删除光标所在处至下一个单词词首之间的所有字符,并且光标跳转至下一个单词的词首
      • 2dw:删除光标所在处至之后的第三个单词的词首,并且光标跳转至第三个单词的词首
        • # This all seem confusing? Look in /etc/sysconfig/init,
          • 上述文本光标处在This的T处,在执行了“2dw”之后,“This all”会被删除,且光标会跳转至seem的s处
            • # seem confusing? Look in /etc/sysconfig/init,
    • de:删除光标所在处至本单词的词尾之间的所有字符,并且光标跳转至下一个单词的词首之前的空白字符处
      • 2de:删除光标所在处至之后的第三个单词的词首之间的所有字符,并且光标跳转至第三个单词之间的空白字符处
        • # This all seem confusing? Look in /etc/sysconfig/init,
          • 上述文本光标处在This的h处,在执行了“2de”之后,“his all”会被删除,光标会跳转至seem之前的空白字符处
            • # T seem confusing? Look in /etc/sysconfig/init,
    • db:删除光标所在行至本单词的词首之间的所有字符,并且光标会停留在执行命令“db”之前的光标所在处
      • 2db:删除光标所在处至之前的两个单词的,并且光标会停留在执行命令“2db”之前的光标所在处
        • # This all seem confusing? Look in /etc/sysconfig/init,
          • 上述文本光标处在seem的s处,在执行了“2db”之后,“This all”会被删除,光标会停留在seem的s处
            • # seem confusing? Look in /etc/sysconfig/init,
    • dd:删除光标所在行的整行
      • 2dd:删除2行,从光标所在行开始计数

2、替换命令
(1)r:替换光标所在处的字符

3、粘贴命令
(1)p:缓冲区中的内容如果为整行,则粘贴至当前光标所在行的下方;否则,则粘贴至当前光标所在行的后方
(2)P:缓冲区中的内容如果为整行,则粘贴至当前光标所在行的上方;否则,则粘贴至当前光标所在行的前方

4、复制命令
(1)y:结合光标跳转字符,可以实现范围复制,具体如下:
    • y$:复制光标所在处之后至行尾之间的所有字符串
    • y^:复制光标所在处之前至行首的空白字符之间的所有字符串
    • y0:复制光标所在处之前至行首之间的所有字符串
    • yy:复制光标所在行的整行

5、改变命令
(1)c:结合光标跳转字符,可以实现范围删除,并且命令执行完成后,会转换至输入模式
    • c$:删除光标所在处之后至行尾之间的所有字符串,并且转换至输入模式
    • c^:删除光标所在处之前至行首的空白字符之间的所有字符串,并且转换至输入模式
    • c0:删除光标所在处之前至行首之间的所有字符串,并且转换至输入模式
    • cc:删除光标所在行的整行,并且转换至输入模式

6、撤销命令
(1)u:撤销之前一次操作
(2)3u:撤销之前三次操作
(3)ctrl+r:撤销之前执行的撤销命令

7、特殊命令
(1).:重复执行之前一个编辑命令
(2)v:按字符选定(注意:当选定字符串后,可对选定的字符串执行d、y、c等命令)
(3)V:按行选定(注意:当选定字符串后,可对选定的字符串执行d、y、c等命令)

四、末行模式
1、地址界定:[start_position[,end_position]]  –> 可以配合d,c,y,w,r等命令一起使用
(1)#:“#”表示行数,明确第几行
(2).:表示当前行
(3)#,#:“#”表示行数,明确从第几行至第几行
(4)#,+#:“#”表示行数,明确从第几行开始向后数几行
    • 5,+9:从第五行开始,向后数九行
    • .,$-1:从当前行开始至倒数第二行
(5)%:表示所有行
(6)/pattern/:表示从光标所在处开始向文件尾部至第一次被模式所匹配的行
(7)/pattern1/,/pattern2/:表示从被/patter1/匹配的行开始至被/pattern2/匹配的行

2、查找
(1)/pattern:从当前光标所在行处向文件尾部(或者向文件首部)查找能够被/pattern所匹配到的所有字符串
    • n:下一个,与命令方向相同
    • N:上一个,与命令方向相反

3、替换
【格式】
    • s@查找内容@替换内容@修饰符
【知识】
    • 查找内容:支持正则表达式
    • 替换内容:不支持正则表达式,可以使用/1或&来引用“查找内容”中使用正则表达式所匹配到的内容
    • 修饰符:
      • i:忽略字母大小写
      • g:全局替换,默认情况下,只替换一次查找到的内容
【示例】
    • 复制/etc/grub2.cfg文件至tmp目录中,用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行的行首的空白字符;
      • %s@^[[:space:]]\+@@
    • 复制/etc/rc.d/init.d/functions文件至tmp目录中,用查找替换命令为/tmp/functions文件的每个以空白字符开头的行的行首加上#;
      • %s@^[[:space:]]\+[^[:space:]]@#&@g
    • 为/tmp/grub2.cfg文件的前三行的行首加上#号;
      • 1,3s@^@#&@
    • 将/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替换为enabled=1,所有gpgcheck=0替换为gpgcheck=1;
      • %s@\(enabled\|gpgcheck\)=0@&=1@g

五、如何定义vim的特性
(一)配置文件
1、全局配置文件:/etc/vimrc
2、个人配置文件:~.vimrc

(二)定义特定的方式?
1、直接在末行模式下即可完成对vim的特性的定义,但是仅对当前vim进程生效
2、在配置文件(全局OR个人)中定义vim的特性,永久生效

(三)常用特性定义
1、行号
(1)显示行号::set number,可简写为“nu”
(2)取消行号::set monumber,可简写为“nonu”

2、高亮显示括号
(1)开启::set showmatch,可简写为“sm”
(2)关闭::set noshowmatch,可简写为“nosm”

3、自动缩进
(1)开启::set autoindent,可简写为“ai”
(2)关闭::set noautoindent,可简写为“noai”

4、高亮搜索
(1)开启::set hlsearch,可简写为“hls”
(2)关闭::set nohlsearch,可简写为“nohls”

5、语法高亮
(1)开启:syntax on
(2)关闭:syntax off

6、忽略字符大小写
(1)开启::set ignorecase,可简写为“ic”
(2)关闭::set noignorecase,可简写为“noic”

7、设置tab缩进为4个字符
(1)设置::set softtabstop=4

8、获取帮助信息
(1)全部::help
(2)指定::help subject,如:help ic

原创文章,作者:Tornado,如若转载,请注明出处:http://www.178linux.com/55388

(0)
TornadoTornado
上一篇 2016-11-14
下一篇 2016-11-14

相关推荐

  • 第一周博客作业-Linux发行版历史、哲学思想、FHS、命令格式、帮助等

    All + All – 第一周作业 1.计算机组成及功能 计算机组成 硬件 冯诺依曼体系 CPU 运算器 对数据做算暖苏运算和逻辑运算 控制器 寄存器等 程序的运行,是CPU通过调用硬盘中的程序至内存中执行来实现的 存储器 内存 ROM RAM 外存 硬盘 光盘 输入设备 鼠标、麦克风等 实现指令和参数的输入 输出设备 显示器、打印机等 实现结果…

    Linux干货 2017-07-02
  • bash数据类型探秘

    数组 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间,相当于多个变量的在调用变量时最好加双引号,对于字符串中含有空格等字符的能更好的调用集合。数组名和索引索引:编号从0开始,属于数值索引( 偏移量从默认0开始 )注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引, bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引…

    Linux干货 2016-08-24
  • centos7配置bindDNS解析服务

    首先来概述一下 通俗一点理解呢,DNS就是把域名转换成IP的一种服务(反向则是IP转换成域名).以方便人们的记忆,就好比记住一个代表性的英文要比记住电话号码快得多,通常我们将这种服务称之为解析.现在一般公网都有万网 腾讯云这些机构,DNS这一块我们不需要负责.但是在现在企业的内部网则就需要我们来搭建DNS服务器了.本次采用的bind工具进行域名的解析。 1.…

    Linux干货 2018-03-26
  • 源码编译安装http

    为什么需要编译安装软件?   1、软件在编译期间需要配置:比如需要指定安装路径,定制模块等功能;   2、软件需要统一安装路径:在编译安装时可以方便指定这些路径;   3、需要最新的版本:对于某些软件来说可能需要最新的版本。 编译前的准备工作:     1、安装开发工具:make、gcc等…

    Linux干货 2016-08-24
  • 强大的查找工具之find命令

    一、Linux中的文件查找工具     在文件系统上常常需要根据文件的各种属性去查找符合条件的文件,此前讲到的grep、egrep属于文本过滤、文本搜索工具;而文本查找工具有两个,local和find 二、Linux中的查找工具简介 locate 命令 find 命令 简介:locate属于非实时查找,依赖于事先构建的索引;索引的创建是在…

    Linux干货 2016-08-16
  • linux发行版说明和哲学思想,以及常用命令说明

    Linux发行版主要流行的版本有3种:debian,slackware,red 其说明和特点如下图。 Linux哲学思想: 1、一切皆文件;所有的一切都变成了文件!不光是软件方面的比如传统文件、目录、字符设备、还包括硬件或者接口。如鼠标/mouse、打印机/lp、还有接口比如/usb. 2、单一目的的小程序;一个程序只负责干一件事,而且要把这个任务做好。 3…

    Linux干货 2016-10-30