解決vi/vim中粘貼會在行首多很多縮進和空格的問題


secureCRT會將你原來的文本原封不動的按照字符串的樣式發送給服務器。所以當你的服務器上的vim設置為autoindent的話,在i模式下,那么它會將secureCRT傳輸而來的這些字符串再進行一下縮進。若你拷貝的文本中已經有表示縮進的空格或者制表符的話,它們也會被當成字符串,而被縮進。
解決辦法:
1. 在拷貝前輸入:set paste (這樣的話,vim就不會啟動自動縮進,而只是純拷貝粘貼)
2. 拷貝完成之后,輸入:set nopaste (關閉paste)

附 paste 知識
 'paste'                 布爾型  (缺省關閉)
                         全局
                         {Vi 無此功能}
         將 Vim 切換到粘貼模式。可用於從一個窗口剪切或復制文本並粘貼到 Vim。它
         的使用會避免一些意想不到的效果。
         設置此選項可用於終端上運行的 Vim,因為那里 Vim 沒法區別輸入和粘貼的文
         本。在 GUI 里,Vim 知道何者來自粘貼,即使不打開 'paste' 也基本上不會做
         錯。對 Vim 能自己處理鼠標點擊的終端也是如此。
         啟動 GUI 時復位本選項。所以如果你在 .vimrc 里置位它,可以使它在終端里
         工作,但不是在 GUI 里。在 GUI 里置位 'paste' 有副作用: 例如,Paste 工
         具欄按鈕在插入模式下不能工作,因為它使用了映射。
         打開 'paste' 選項時 (包括它本來就是打開的也會如此):
                 - 屏蔽插入模式和命令行模式的映射
                 - 屏蔽縮寫
                 - 'textwidth' 設為 0
                 - 'wrapmargin' 設為 0
                 - 'autoindent' 被復位
                 - 'smartindent' 被復位
                 - 'softtabstop' 設為 0
                 - 'revins' 被復位
                 - 'ruler' 被復位
                 - 'showmatch' 被復位
                 - 'formatoptions' 的使用方式就像它為空一樣
         下面這些選項保持原來的值,但沒有實際的效果:
                 - 'lisp'
                 - 'indentexpr'
                 - 'cindent'
         注意: 打開 'paste' 選項時如果你開始編輯別的文件,模式行或者自動命令可
         能會再次改變這些設置,從而在粘貼文本時造成麻煩。這時,你可能需要再次置
         位 'paste' 選項。
         'paste' 選項復位時,上面提到的選項被復原為上次 'paste' 從關到開時的設
         置。置位 'paste' 之前復位 'paste' 沒有任何效果。因為 'paste' 激活時不
         能用映射,'pastetoggle' 選項可以用來指定切換 'paste' 選項的熱鍵。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM