VIM: 解決vi/vim中粘貼時行首出現很多縮進和空格的問題


解決vi/vim中粘貼時行首出現很多縮進和空格的問題 http://www.jbxue.com/LINUXjishu/12232.html

由於在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