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

相关推荐

  • 08.04 笔记总结

    1.ps axo  user,ruser,group,rgroup,cmd  //  ruser  表示程序发起的用户,一般是指系统当前的用户  //  user  表示程序的所有者。在大数情况下,两个用户都是系统当前的用户, 之后当程序被赋予suid的时候,可能user会发生变化。 2.…

    Linux干货 2016-08-08
  • iptables之nat

    NAT网络地址转换SNAT:修改IP报文中的源IP地址 本地向互联网请求让本地网络中的主机可使用统一地址与外部通信,从而实现地址伪装请求:修改源IP,如果修改则由光梨园定义响应:修改目标IP,由nat自动根据会话表中追踪机制实现相应修改DNAT:修改目标地址转换 外网服务器向其他客户端请求请求:由外网主机发起,修改其目标地址,由管理员定义相应:修改源地址,但…

    2017-11-12
  • 第六周作业

    请详细总结vim编辑器的使用 模式化的编辑器 基本模式: 编辑模式,命令模式 输入模式 末行模式: 内置的命令行接口; 打开文件: # vim [options] [file ..] +#:打开文件后,直接让光标处于第#行的行首; +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的首; 模式转换: 编辑模式:默认模式 编辑模式 …

    Linux干货 2017-03-21
  • 正则表达式

    正则表达式:             由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符            字面意义,而表示控制或通配的功能程序支持:  grep,sed,awk,vim,less…

    2017-08-05
  • 用户与组管理

    如何成为linux用户?     在linux系统中,要想从系统中获取资源、对系统进行管理和控制,就需要向系统申请一个账号,从而实现特定用途,当申请到账号后,要对它设置口令,这样用户账号就申请成功了,然后可以登陆系统,当用户登陆系统时,需要通过系统的认证,认证成功后才给予授权,在用户的使用过程中还会对用户进行审计。 为什么要设置…

    Linux干货 2016-08-08
  • MairaDB之基于openssl的主从复制

    一、配置openssl   1、   在master server(node0)上根CA的搭建(及生成自签名证书) [root@node0 ~]# cd /etc/pki/CA/ [root@node0 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) Gen…

    2016-11-19