首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

Vim 貼上代碼時關閉自動縮排的技巧

     編輯:關於C

在 Vim 中開啟 smartindent 或 autoindent 時,貼上程式碼常會導致縮排混亂、重複縮排。本文介紹最簡單的解決方案:使用 paste 模式。

問題場景

複製一段 C 代碼到剪貼簿,在 Vim 中進入插入模式後貼上(Ctrl+Shift+V 或中鍵貼上),結果每行縮排疊加,代碼結構全亂。

解決方案:paste 模式

啟用 paste 模式

:set paste

此時狀態列會顯示 -- INSERT (paste) --,表示自動縮排已暫時關閉。

貼上代碼

進入插入模式(i、a、o 等),貼上內容,縮排將保持原樣。

恢復正常模式

:set nopaste

狀態列回到 -- INSERT --,自動縮排恢復生效。

進階技巧:快捷鍵切換

在 ~/.vimrc 加入:

" F2 切換 paste 模式
set pastetoggle=<F2>

之後按 F2 即可快速切換,無需輸入指令。

替代方案

  • 寄存器貼上:"+p 直接從系統剪貼板貼上(需 Vim 支援 +clipboard)
  • 臨時關閉縮排::set noautoindent 貼上後 :set autoindent
  • 使用括號貼上:]p 自動調整縮排(適合已縮排良好的代碼)

總結

:set paste 是最標準、最通用的解決方案,配合 pastetoggle 效率最高。建議養成「貼上前 F2,貼上後 F2」的習慣。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved