<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      編輯器之神——Vim之常用快捷鍵分類整理

      Vim起源

      ??Vim是從vi發展出來的一個文本編輯器,vi(visual editor)是unix/linux操作系統中最經典的文本編輯器,vim原來的名字叫做vi imitation(vi模擬器),目的是完全復制vi的功能,為開源和在類unix系統中移植而生,在成功被移植到unix之后名字變成了vi improved(vi改進版)。
      ??Vim創造了開源世界“協作精神”和“自由軟件持續改進”的奇跡。成為了自由軟件歷史上不朽的“豐碑”。后世為了紀念這場偉大的編輯器開源運動,給vim封了神——“編輯器之神”。

      有一款與Vim并稱的編輯器Emacs,遠古時代誕生的始祖軟件很多都是用Emacs編輯器創造的,Emacs被稱作“神之編輯器”,為了紀念使用Emacs寫C的大神們。

      ??最近涉及了很多Linux下的工作,使用了一段時間的Vim,雖然Vim的學習曲線陡峭,但是奇異的操作方式在熟悉了之后帶來的是對鼠標依賴的解除,用起來還是很帶感的,雖然快捷鍵非常多,但快捷鍵的設定富有邏輯性,理解了之后要在Vim下生存并不是很困難的事,存活下來之后就是日常使用增加熟練度。
      ??整理了常用的Vim快捷鍵分類如下。

      1 模式切換

      • esc:normal常規模式;
      • i:insert插入模式;
      • v:visual可視模式;
      • ctrl+v:visual block可視塊模式
      • : ——command命令模式;
      • r:replace替換模式。

      2 啟動vim

      • vim + file: 打開文件,從文件的末尾開始;
      • vim +num file: 打開文件,從第num行開始;
      • vim +/string file: 打開file,并將光標停留在第一個找到的string上。
      • vim -c cmd file: 在打開文件前,先執行指定的命令;
      • vim -R file: 以只讀的方式打開文件,但可以強制保存;
      • vim -M file: 以只讀的方式打開文件,不可以強制保存;
      • vim -r file: 恢復上次異常退出的文件;

      3 文檔操作

      • :——進入命令模式

      • :!——調用shell命令的前綴“!”,比如:!pwd可以顯示當前路徑

      • :w ——保存修改;

      • :q[uit] ——退出當前窗口(CTRL-w q);

      • :q!——強制退出(可在不保存的情況下退出)

      • :wq ——保存并退出(ZZ或:x);

      • :saveas newfilename ——另存為;

      • :e ——重新加載當前文檔;

      • :f或ctrl+g ——顯示文檔名,是否修改,和光標位置。

      • :help ——查看幫助

      4 移動光標

      4.1 基本移動(文檔方向=文字輸入方向:后->前)

      • h,j,k,l:左(退格),上,下,右(空格)移動光標
        ?
      • b:移動到上一個單詞的開頭;
      • B:移動到上一個單詞的開頭(忽略標點);
      • w:移動到下一個單詞的開頭;
      • W:移動到下一個單詞的開頭(忽略標點);
        ?
      • e:移動到單詞結尾(如果已在結尾則移動到下一單詞結尾);
      • E:移動到單詞結尾(忽略標點);
      • ge:移動到上一個單詞結尾;
      • gE:移動到上一個單詞結尾(忽略標點);
        ?
      • %:移動到配對的括號
        ?
      • (:上移一句;
      • ):下移一句;
      • {:移動到上一個空行,段落以空行為間隔;
      • }:移動到下一個空行;
      • [[:將光標移動到上一個代碼段(或函數)的行首;
      • ]]:將光標移動到下一個代碼段(或函數)的行首;
        ?
      • +或Enter: 把光標移至下一行第一個非空白字符;
      • -: 把光標移至上一行第一個非空白字符;
        ?
      • f+“單字符”:行內移動到下一個目標,使用“,”和“;”可以沿上下繼續搜索;
      • F+“單字符”:行內移動到上一個目標,使用“,”和“;”可以沿上下繼續搜索;
      • t+“單字符”:行內移動到下一個目標前,使用“,”和“;”可以沿上下繼續搜索;
      • T+“單字符”:行內移動到上一個目標后,使用“,”和“;”可以沿上下繼續搜索;

      可以在操作前加上數字,表示操作的重復次數:
      [n]+“移動操作”——操作前加上“數字”表示重復次數,3h表示左移三次,3fx表示移到后續的第3個x的位置;
      [n]+“i”+“輸入”——重復多次輸入,3igo表示輸入gogogo。

      • 0:移動到行首
      • ^:移動到行首(非空白字符)
      • $:移動到行尾
        ?
      • H:移動到屏幕上方(high)
      • M:移動到屏幕中間(middle)
      • L:移動到屏幕下方(low)
        ?
      • gg:移動到文件開頭
      • G:移動到文件結尾
        ?
      • n| ——移動到第n列
      • nG或:n ——移動到第n行

      4.2 翻屏(不修改代碼)

      • ctrl+b: 向上翻一屏;
      • ctrl+f:向下翻一屏;
        ?
      • ctrl+u:向上翻半屏;
      • ctrl+d:向下翻半屏;
        ?
      • ctrl+e:向下滾動一行;
      • ctrl+y:向上滾動一行;
        ?
      • zz:將當前光標所在行居中;
      • zt:將當前光標所在行置頂;
      • zb:將當前光標所在行置底;

      4.3 標記(導航)

      可以用Ctrl+oCtrl+i進行后退和前進。

      m{a-z}: 標記光標所在位置,局部標記,只用于當前文件;
      m{A-Z}: 標記光標所在位置,全局標記,標記后,退出Vim, 重新啟動,標記仍有效;
      `{a-z}: 移動到標記位置;
      `{0-9}:回到上[1-10]次關閉vim時最后離開的位置;
      
      ``: 移動到上次編輯的位置;
      `": 移動到上次離開的地方;
      `.: 移動到最后改動的地方;
      
      :marks ——顯示所有標記;
      :delmarks a b ——刪除標記a和b;
      :delmarks a-c ——刪除標記a、b和c;
      :delmarks a c-f ——刪除標記a、c、d、e、f;
      :delmarks! ——刪除當前緩沖區的所有標記;
      
      :help mark-motions ——查看更多關于mark的知識。
      

      上述操作中,出現`(點號)的地方也可以使用'(單引號),使用點號可以精確到列,使用單引號只精確到行

      5 插入

      所有的插入操作都會自動進入i插入模式

      5.1 基本插入

      • i:光標前插入;
      • I:當前行第一個非空字符前插入
      • a: 在光標后插入;
      • A: 在當前行最后插入;
      • o: 在下面新建一行插入;
      • O: 在上面新建一行插入;
        ?
      • :r filename在當前位置插入另一個文件的內容;
      • :[n]r filename在第n行插入另一個文件的內容;
        ?
      • :r !date ——在光標處插入當前日期與時間;
      • :r !command ——同理,可以將其它shell命令的輸出插入當前文檔。

      5.2 改寫插入

      • [n]cc:改寫光標所在行;
      • [n]s: 以輸入的文本替代光標之后1(n)個字符,相當于c[n]l;
      • [n]S: 刪除指定數目的行,并以所輸入文本代替之,相當于[n]cc;

      c[n]+移動操作:改寫對應范圍的內容([n]+操作——在第4節的移動操作里已經介紹過了):

      • c[n]h:改寫光標左邊1(n)個字符;
      • c[n]l: 改寫光標右邊1(n)個字符。
      • c[n]k: 改寫光標上n行(包含當前行)的內容;
      • c[n]j:改寫光標下n行(包含當前行)的內容;
      • c[n]b:改寫光標位置到上n個單詞的開頭位置的內容;
      • c[n]w:改寫光標位置到下n個單詞的開頭位置的內容;
      • c[n]e:改寫光標位置到下n個單詞的結尾位置的內容;
      • c$: 改寫從光標當前位置到行尾;
      • c0: 改寫從光標當前位置到行首;
      • cgg: 改寫光標以上的所有行;
      • cG: 改寫光標以下的所有行。
        ?
      • r+“字符”:替換當前位置的字符
      • R:進入replace模式,輸入的內容會覆蓋當前位置

      5.3 拼接行

      • J:將下一行拼接到當前行末尾

      5.4 多行注釋

      通過visual block可視塊模式可以使用列選中功能,從而在想要的位置進行多行注釋。

      在行首插入注釋符:

      按ctrl+v進入visual block可視塊模式;
      利用h、j、k、l方向鍵調整需要注釋多少行;
      再按I(大寫字母i,shift+i)進入插入模式,并將光標移至所有選中列的行首;
      輸入代表注釋的符號“//或者#;(在這一步只會在選中的第一行出現注釋符號)
      再次按ESC鍵,等待一會兒即可完成多行注釋。(此時才會在所有選中行出現注釋符號)

      在選中區域使用注釋符替換:

      按ctrl+v進入visual block可視塊模式;
      利用h、j、k、l方向鍵調整需要替換成注釋符的區域;
      再按s進入插入模式,并將光標選中的區域清空;
      輸入注釋符“//或者#;(在這一步只會在選中的第一行出現注釋符)
      再次按ESC鍵,等待一會兒即可完成多行注釋。(此時才會在所有選中行出現注釋符)

      需要刪除注釋的時候,同樣通過列選中功能,選中所有的注釋之后,d或者x即可。(d和x在下面會介紹)

      6 刪除

      • [n]dd:刪除1(n)行;

      d[n]+移動操作:刪除對應范圍的內容,d操作刪除的內容會保存到vim寄存器,相當于剪切:

      • d[n]h: 刪除光標左邊1(n)個字符。
      • d[n]l: 刪除光標右邊1(n)個字符。
      • d[n]k: 刪除光標上n行(包含當前行)的內容;
      • d[n]j: 刪除光標下n行(包含當前行)的內容;
      • d[n]b:刪除光標位置到上n個單詞的開頭位置的內容;
      • d[n]w:刪除光標位置到下n個單詞的開頭位置的內容;
      • d[n]e:刪除光標位置到下n個單詞的結尾位置的內容;
      • d$或D: 刪除從光標當前位置到行尾的內容;
      • d0: 刪除從光標當前位置到行首的內容。
      • dgg: 刪除光標以上的所有行;
      • dG: 刪除光標以下的所有行;
      • :m,nd ——刪除m行到n行的內容。

      在vim里,d操作刪除的字符也會放入寄存器供粘貼時使用,所以也等同于剪切操作。

      7 剪切

      • [n]x: 剪切光標右邊n個字符,相當于d[n]l;
      • [n]X: 剪切光標左邊n個字符,相當于d[n]h。

      8 復制

      • y: 復制在可視模式下選中的文本;
      • yy或Y: 復制整行文本;

      y[n]+移動操作:復制對應范圍的內容:

      • y[n]h: 復制光標左邊1(n)個字符。
      • y[n]l: 復制光標右邊1(n)個字符。
      • y[n]k: 復制光標上n行(包含當前行)的內容;
      • y[n]j: 復制光標下n行(包含當前行)的內容;
      • y[n]b:復制光標位置到上n個單詞的開頭位置的內容;
      • y[n]w:復制光標位置到下n個單詞的開頭位置的內容;
      • y[n]e:復制光標位置到下n個單詞的結尾位置的內容;
      • y$: 復制從光標當前位置到行尾的內容;
      • y0: 復制從光標當前位置到行首的內容;
      • ygg: 復制光標以上的所有行;
      • yG: 復制光標以下的所有行;
      • :m,ny ——復制m行到n行的內容。

      9 粘貼

      • p: 在光標之后粘貼;
      • P: 在光標之前粘貼。

      10 選擇

      • v:進入visual模式,可以執行選擇操作
      • e+“移動操作”:選擇范圍,選擇完成后可以執行c、d、y、p等操作

      11 寄存器

      復制粘貼功能需要用到寄存器,使用的是vim自身的寄存器,所有只能在vim中使用
      要關聯系統剪貼板,需要vim的clipboard功能的支持
      使用“vim --version | grep clipboard”查看
      clipboard之前是+表示支持,-表示不支持
      安裝gvim或者vim-gnome可以支持剪貼板

      :reg 顯示所有寄存器的內容
      "" ——不加寄存器索引時,默認使用的寄存器,""yy把當前行的內容放入默認寄存器。
      "+ ——系統剪貼板,"+yy把當前行的內容放入系統剪貼板,"+p從系統剪貼板復制到vim。
      

      12 查找與替換

      查找

      *——向下查找當前光標所在單詞,可繼續使用n向后查,N向前查
      #——向上查找當前光標所在單詞,可繼續使用n向后查,N向前查
      /+“字符串”:向下查找字符串,可繼續使用n向后查,N向前查
      ?+“字符串”:向上查找字符串,可繼續使用n向后查,N向前查
      

      替換

      :s/old/new ———用new替換當前行第一個old。
      :s/old/new/g ——用new替換當前行所有的old。
      :n1,n2s/old/new/g - 用new替換文件n1行到n2行所有的old。
      :%s/old/new/g - 用new替換文件中所有的old。
      :%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首。
      :%s/$/xxx/g - 在每一行的行尾插入xxx,$表示行尾。
      
      所有替換命令末尾加上c,每個替換都將需要用戶確認。 
      如:%s/old/new/gc,加上i則忽略大小寫(ignore)。
      

      13 重復操作

      . ————(英文句號)重復執行上一次的操作
      

      例如你想手動將文件中所有的old轉換為new,只需要:

      進入普通模式,將光標移到old下

      1. 敲擊*查找old
      2. 敲擊cw替換old,輸入new
      3. 按ESC繼續進入普通模式
      4. 敲擊n查找下一個old
      5. 敲擊.重復執行替換(重復執行的是步驟2中的輸入new操作)
      6. 重復步驟4、5即可

      14 撤銷、重做

      • u:撤銷
      • ctrl+r:重做

      15 鎖屏、解鎖

      • ctrl+s:鎖屏
      • ctrl+q:解鎖
      posted @ 2021-11-10 21:53  seedoubleu  閱讀(2380)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久亚洲国产精品久久| 日本中文字幕久久网站| 国产精品久久久一区二区三区| 国产精品中文字幕自拍| 国产一区二区三区禁18| 久久天天躁夜夜躁狠狠85| 成都市| 久久中文字幕无码一区二区| 最近中文字幕mv免费视频| 亚洲精品日韩中文字幕| 99精品国产兔费观看久久99 | 久久99精品久久久久久| 无码成人一区二区三区| 免费午夜无码片在线观看影院| 国产伊人网视频在线观看| 国产叼嘿视频一区二区三区 | 欧美丰满熟妇性xxxx| 欧美成年性h版影视中文字幕| 色综合久久中文综合久久激情| 久久se精品一区精品二区 | 亚洲精品久久久久久无码色欲四季| 成人午夜在线观看刺激| 艳妇乳肉豪妇荡乳在线观看| 国产不卡精品视频男人的天堂| 97se亚洲国产综合自在线观看| 欧美刺激性大交| 99精品国产一区在线看| 最近免费中文字幕mv在线视频3| 四虎永久精品在线视频| caoporn免费视频公开| 精品国产成人a在线观看| 亚洲va中文字幕无码久久| 久久亚洲av成人一二三区| 久久久久久综合网天天| 福利一区二区在线播放| 国产精品乱子乱xxxx| 年日韩激情国产自偷亚洲| 午夜福利在线观看6080| 亚洲成a人v欧美综合天堂下载 | 成人精品区| 亚洲在战av极品无码|