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

相关推荐

  • 数据库的备份和恢复

    数据库的备份和恢复 一 (理论篇)、数据库备份与恢复基础 1、数据库的备份与恢复 备份:存储的数据副本; 原始数据:持续改变; 恢复:把副本应用到线上系统; 仅能恢复至备份操作时刻的数据状态; 时间点恢复: binary logs; 2、为什么备份? 灾难恢复: 硬件故障(冗余)、软件故障(bug)、自然灾害、黑客攻击、误操作、…&nb…

    2016-11-22
  • 脚本的进阶与一些基本脚本

    1,脚本中用于表示数字大小写和符号为: -gt(大于)-lt(小于)-ne(不等于)-eq(等于) 格式为 [[空格 ”符号”空格]] 2,测试文件类型的选项 -f(是否为普通文件)-l(是否为链接文件)-d(是否为目录)-e(单独测试文件是否存在) 3,if语句的格式:(其中path代表条件,elif链接多个条件,最后一个条件用else表示) if pat…

    Linux干货 2017-05-22
  • MYSQL数据库基础教程

    一、数据库介绍 1.数据库管理系统的产生背景 (1)数据时代的到来要求对数据进行有效和安全的管理 涉及的数据量大 数据不随程序的结束而消失 数据被多个应用程序共享 大数据时代的到来 (2)传统文件系统管理上的缺陷要求改变数据管理方式 编写应用程序不方便 数据冗余不可避免 应用程序依赖性 不支持对文件的并发访问 数据间联系弱 难以按用户视图表示数据 无安全控制…

    Linux干货 2017-10-05
  • Find工具实例

      1、显示当前系统上root、fadora或user1用户的默认shell。         [root@localhost ~]# grep -E "^(root|fadora|user1)\>"&n…

    Linux干货 2016-11-27
  • 生产环境日志审计

         日志审计,就是记录所有系统和相关用户行为的信息,并且可以自动分析,处理。在中小企业环境中,一般都是在单个服务器上记录日志,而大型企业的生产环境当中,会有专门的日志服务器乃至集群。本文通过sudo配合centos自带的rsyslog(syslog)服务,进行日志审计。    &nb…

    Linux干货 2016-10-20
  • Linux文件管理类命令相关

    Linux文件管理类命令相关 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1)、查看文件命令: (1)ls命令: list,列出目录下的内容 语法: ls [OPTION]… [FILE]… 常用选项: -a: 显示所有文件,包括隐藏文件; -A:显示除.和..之外的所有文件; -l: –…

    Linux干货 2016-09-24