鍍金池/ 問答/Linux/ vim怎么粘貼其他地方復(fù)制的代碼?

vim怎么粘貼其他地方復(fù)制的代碼?

我在網(wǎng)頁上復(fù)制了一段代碼,想粘貼到vim中。
第一次粘貼的時候,總會丟失復(fù)制內(nèi)容的起始幾個字符,緊接著第二次粘貼則正常,是什么原因?
下面是<title>Hello, world!</title>為粘貼內(nèi)容的測試結(jié)果,共粘貼兩次,可以看到,第一次(前面兩行)很奇怪,第二次(第三行)正常。

  1
  2 , world!</title>
  3 <title>Hello, world!</title>

左側(cè)的1 2 3為行號

回答
編輯回答
萢萢糖

使用鍵盤enter下面的文檔鍵+p

2018年4月17日 21:09
編輯回答
慢半拍

先按下 insert 進入編輯模式,然后按 shift+insert 粘貼內(nèi)容。

2017年2月17日 17:37
編輯回答
毀憶

可能一部分字符被當成vim指令了

我都是 :r!cat 粘貼的

2017年3月24日 14:21
編輯回答
陌上花

在設(shè)置中打開clipboard。就可以和外界共享粘貼板了。
用"+y復(fù)制vim里的內(nèi)容,直接在外面粘貼。
外面賦值的內(nèi)容,用"+p粘貼在vim編輯的文件中。

2017年3月17日 17:42
編輯回答
心沉

打開 vim 后默認是命令模式。

  • 設(shè)置粘貼模式
    如果要保持原樣粘貼,在命令模式下按英文:,冒號出現(xiàn)在左下角,此時輸入set paste來設(shè)置。
  • 進入編輯模式

    • i 在光標處開始進入編輯模式
    • a 從光標位置的下一個字符開始(沒有內(nèi)容時無效)進入編輯模式
    • o 光標移動到下一行行首并進入編輯模式

進入編輯模式,后直接使用shift+insert進行粘貼。
如果再需要回到命令模式,按 Esc。

2017年7月31日 14:17
編輯回答
憶當年

簡單原因: 你沒有進入編輯模式就試圖編輯文件, 所以產(chǎn)生了你意想不到的結(jié)果.

具體原因:

  1. 你打開了 vim, 此時 vim 處于 正常模式.
  2. 你粘貼了 <title>Hello, world!</title>, 相當于向 vim 申請執(zhí)行該指令, vim 會順次執(zhí)行. 在正常模式下, <> 表示縮進, 但因為你沒有選中文本, 因此什么也沒有發(fā)生, 兩個中括號中間的 title 是無效的. Hell 也不會有具體效果. 但執(zhí)行到 o 時, o 表示在光標所在行的下一行進入 插入模式, 剩下的內(nèi)容被當做插入文本處理. 因此你文件中的第一行是空白行, 第二行是 o 后面的內(nèi)容, 即 , world!</title>
  3. 因為上面的操作已經(jīng)使 vim 進入 插入模式, 且你并未點擊 ESC 退出該模式, 因此在你繼續(xù)進行第二次粘貼的時候, 就會直接執(zhí)行插入操作, 這行被完整的插入進去了.

疑問:
如果兩次粘貼中間沒有其他操作, 那么第二次粘貼時不應(yīng)該會另起一行. 我猜測你應(yīng)該敲了一個回車符后進行的粘貼.

建議:
了解下 vi 操作基礎(chǔ).

2017年5月8日 11:59