經常容易出現將」name"打成「nmae"的情況,如何快速的交換ma的位置呢?
交換前後兩個字元
解釋:x 用於刪除單個字元,同時刪除的字元會進入快取,p既可以將快取的字元新增到游標後。多說一句,p是將字元新增到游標前。
主要利用視覺化模式和$
的選擇,以及a的插入模式。
在每一行後面插入文字
更好的操作:,
g
,$
,a
,\
,esc
快速處理複製**時出現的詭異縮排問題。<
向左縮排,>
向右縮排。
處理縮排
在~/.vimrc
中增加快捷操作
nnoremap :nohlsearch
nnoremap
: normal model remap, 對普通模式下的快捷鍵進行對映。
: 對映不會在命令列輸出資訊,定義後續
的行為。
左邊的表示要定義的快捷鍵,右邊的
:nohlsearch>
則是左邊快捷鍵實現的工作。其中原本的表示清屏重寫,也就是重新整理
vim區分螢幕行和實際行,實際行小於或等於螢幕行。這是因為當一行文字過長時,vim會自動以多行進行展示。
為了實現螢幕行移動,只要在原本的移動,例如 hjkl 前加上 g, 也就是gh
等。
關於vim的命令模式,要從vi的起源說起。最初的有乙個unix的文字編輯器叫做ed,也就是editor的縮寫,之後改進成em(editor for mortals), en,直到ex。ex增加了乙個功能,將終端螢幕設定互動視窗的形式,該模式通過:visual
啟用,簡寫成vi,也就是vi編輯器名字的由來。vim表示vi improved,vim在設計過程中就繼承了命令列模式。
說到ed,就會想到sed。如果學過sed,那麼sed裡面的操作幾乎能無縫地在vim的命令列模式中使用。
行選擇
演示**現的幾個選擇方法
按照子串移動比按照單詞移動快
在寫**的時候, 如果出現了"(", 那麼後面就一定會有")"和他搭配,有左引號,就會有右引號。 可用:h text-object
了解文字物件。
需要用vim --version | grep textobjects
檢查所用的vim是否支援。
選擇單詞,句子或段落
a 和 i 區別可以簡單的認為是a還會選擇附近的空白,i只會選擇單詞本身。一般d和aw, as,ap 配合使用,c和iw配合使用選擇類似於**塊的區域
既可以用d2w一次性刪掉2個單詞,也可以是dw. ,先刪掉乙個單詞,然後重複一次。究竟選擇那種方案,沒有絕對對錯之分,只能具體情況具體分析了。
剛開始學習vim的時候,它最讓我吃驚的一點是,可以按照自己思維的方式進行編輯,比如說刪掉乙個單詞,就是daw
, delete a word, 或者是刪除字元後開始編輯,ciw
。 這種操作由操作符號和動作命令組成。
vim的操作符號如下
轉換大小寫的用途在於,你可以安心地把caps lock鍵替換成ctrl。當你要輸入乙個全大寫單詞時,你可以先照常輸入小寫,然後用guiw 把字元轉換成大寫。如果你只是想首字母大寫,那麼在輸入第乙個字元的時候,用shift+對應的字母就能輸入大寫的字母。操作符在使用時,後面必須跟著動作命令。如果想要作用當前行,那麼就同時輸入兩個操作符。
幾個操作演示
預設就是如上幾個操作符,但是可以通過外掛程式增加一些操作符號,比如說提供了注釋的操作符。他會根據指令碼型別進行注釋,當我知道這個檢查外掛程式之後,我終於不用自己手動加注釋符號了。
注釋
同樣我們也可以額外增加一些動作命令,例如外掛程式提供了ie
和ae
作用於整個檔案。
在之前的快速處理**複製貼上時出現的詭異縮排問題時,我還是花了很多不必要的操作,主要原因是我對vim還不熟悉。
引起貼上出現問題的背後原因是,我在~/.vimrc
裡設定了set autoindent
。從系統剪下板貼上文字時,原本的空格被保留的同時,每次換行,vim還會自動幫我們縮排。
自動縮排引起異常
一種解決方案就是不設定自動縮排。但寫**沒有自動縮排是絕對不可以的,因此我們需要另一種解決方案,也就是使用:set paste
,這樣子vim裡很多會導致貼上異常的引數都會被關掉。之後再用set paste!
復原即可。
如果經常有從系統命令貼上內容這個動作,那麼:set pastetoggle=
既可以讓我們用f5在插入模式下自動切換模式了。
解決系統剪下問題
除錯斷言失敗 一日一技 python中的斷言
一 使用python中的斷言來自動檢測python程式中的錯誤,讓程式更加可靠且更易於除錯 從根本上來說,python中的斷言語句是一種除錯工具,用來測試某個斷言條件,如果斷言條件為true,則程式將繼續正常執行 但如果斷言條件為假false,則會引發assertionerror異常並顯示相關的錯誤...
一日一技 不用輪詢,基於事件監控檔案變動
我們經常會遇到監控檔案變化的需求。例如日誌監控程式監控日誌檔案,一旦日誌檔案發生變化,就進行讀取。或者是大批量爬蟲的規則配置檔案監控,爬蟲本身持續執行,一旦規則檔案發生修改就自動讀取新的規則。常見的做法,如果檔案比較小,可以直接讀取以後跟上次讀取的內容做對比 也可以判斷檔案的修改時間是否發生變化 也...
擁有一技之長
在當今社會立足的根本是擁有一技之長。現在這個社會,沒有一項突出的技能,在各行各業激烈的競爭中想要立足,猶如是痴人說夢一般。未來怎麼樣我們很難下定論,但是不管未來怎麼變化,擁有一技之長總會讓自己有吃飯的資本。其次,有一技之長 有益於國家的繁榮昌盛,有益於我們個人生活品質的提高。放眼望向周圍的人,凡是對...