在vim下方貼了一大段python程式碼,但從某一行開始全部都多後退了一個tab,有100多行,我一個個手動調(diào)整好了,累個半死。
請問有沒有辦法更省事點?
小伙看你根骨奇佳,潛力無限,來學(xué)PHP伐。
在vim裡,貼上程式碼之前最好進入貼上模式,這樣就會關(guān)閉自動縮排
set paste
將程式碼貼進去之後再關(guān)閉貼上模式
set nopaste
縮排單行程式碼是兩個大於號碼'>>'
回縮就是兩個小於號'
如果想要縮排很多行程式碼的話就照下面做
1 //在這里按下'v'進入選擇模式
1
1
1
1
1
1//光標移動到這里,再按一次大于號'>'縮進一次,按'6>'縮進六次,按'<'回縮。以下同理
function helo{//將光標移動到'{',在按下'%',光標將會移動到匹配的括號
//這里省略1000行
}//光標會移動到這里,再按一次大于號'>'就可以縮進
在Vim 中貼上要注意,如果Vim 無法知道你是在貼上(非GUI 版本,終端中沒有打開滑鼠支援或終端本身不支援滑鼠,因為Vim 沒有X 剪貼簿支援而繞過Vim、使用帶Shift 鍵的方式讓終端直接貼上(如往ssh 中的Vim 貼上時通常Vim 不能存取本地剪貼簿,所以只能讓終端去「打字」)),那麼你需要在貼上前設(shè)定'paste' 選項 。此選項會在插入模式停用自動縮排、映射等。詳見 :h 'paste'
在 vimrc 內(nèi)定義好python的各種 tab,例如:
autocmd FileType python set ts=4 | set sw=4 | set expandtab
然後在 normal 模式,直接輸入=nj
n 是要求自動對齊的行數(shù),不管縮排是怎麼樣的亂,都會自動對齊
在下以為 vim 提供的指令都很靈活,但都太底層了。目前所有答主的答案都是硬敲的,難記憶也沒有效率,建議設(shè)定成快捷鍵。
例如個人習(xí)慣用tab,選取目標區(qū)域然後按快捷鍵即可。
viml
vnoremap <tab> >gv vnoremap <s-tab> <gv
以題主的問題為例。
完~