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?。簭娭浦苯油顺?/span>
(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.www58058.com/55388

(0)
TornadoTornado
上一篇 2016-11-14 08:29
下一篇 2016-11-14 08:30

相關推薦

  • 2016.08.04學習筆記

    文本管理工具     1.cat:查看文件,讀取鍵盤輸入         -A:查看文件所有信息         -n:顯示行數   &nb…

    Linux干貨 2016-08-08
  • 正則

    Edit 正則 概述: 正則表達式,Regular Expression,縮寫regex、regexp、RE 正則表達式是文本處理極為重要的技術,用它可以對字符串按照某種規則進行檢索、替換 1970年,Unix之父ken Thompson將正則表達式引入到Unix中文本編輯器ed和grep命令中,由此正則表達式普及開來 1980年后,perl語言對Henry…

    Linux干貨 2017-11-06
  • vsftpd

    vsftpd:     程序環境:         配置文件:/etc/vsftpd/vsftpd.conf         主程序:/usr/sbin/vsf…

    Linux干貨 2016-12-05
  • 如何學好C語言

    有人在酷殼的留言版上詢問下面的問題 keep_walker : 今天晚上我看到這篇文章。 http://programmers.stackexchange.com/questions/62502/small-c-projects 我也遇到了和提問的老外一樣的問題。。能給像遇到這樣煩惱的程序員一點建議嘛?謝謝! 我相信,這可能是很多朋友的問題,我以前…

    Linux干貨 2016-08-15
  • N25-第八周博客作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態; 在線的主機使用綠色顯示;不在線的主使用紅色顯示; #!/bin/bash # ping探測主機在線狀態 for i in `seq 254`;do if ping -c 1 172.16.0.$i &> /dev/null;th…

    Linux干貨 2017-02-23
  • linux目錄基礎、簡單的命令以及運用linux幫助

    計算機組成及其功能     計算機其實是:接收用戶輸入指令與數據,經過中央處理器的數據與邏輯單元運算處理后,以產生或存儲成有用的信息。所以計算機組成可以分為輸入單元、輸出單元、CPU(控制單元、算術邏輯單元)、內存     輸入單元:包括鍵盤、鼠標、掃描儀、手寫板、觸摸屏等;實現…

    Linux干貨 2016-09-17
欧美性久久久久