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

相关推荐

  • php-fpm实验

    #yum install marisdb-server #vim /etc/my.cnf.d/server.cnf [mysqld]         skip_name_resolve=ON         innodb_file_per_…

    Linux干货 2017-06-08
  • 部分基本的文本处理工具

    一、   抽取文本的命令     1、cat     cat [option]… [file]…     常用选项:         -E &nb…

    Linux干货 2016-08-05
  • 学习shell scripts

    1. 为什么要学习shell编程?          许多人会问,为什么要学习shell脚本编程?我学的是linux,又不是编程,其实对于个人用户可能用处不是很大,但是当你在为公司的成千上完的服务器做维护时,可能没有shell编程的话可能把人累死也无法完成任务,一千台服务器要做相…

    Linux干货 2016-08-18
  • sed命令实战

    1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符  [root@centos7 ~]# sed -r 's#^[[:space:]]+##g' /etc/grub2.cfg # # DO NOT EDIT THI…

    Linux干货 2016-08-15
  • 导读谷歌三大核心技术之一 GoogleFileSystem(一)

    GoogleFileSystem设计构想 为满足Google数据处理的需求,Google工程师设计并实现了GoogleFileSystem(GFS)。GFS与传统分布式文件系统类似,也需要满足高性能、可伸缩性、可靠性以及可用性。与传统分布式文件系统思路不不同的是: GFS认为组件失效是常态而非意外,GFS由大量廉价设备组成 文件数量异常巨大 绝大部分文件修改…

    Linux干货 2017-05-07