Vim

粘貼到 vi / vim 後的游標位置

  • February 9, 2022

在vi / vim中一直困擾著我的一件事:

如果我“拉”(又名“複製”)一些文本,然後移動到文件中的另一個位置並進行“粘貼”,我的游標將停留在我剛剛粘貼的文本的開頭。這與大多數現代編輯器所做的不同,後者是將游標放在我粘貼的文本的末尾

例如,假設“複製緩衝區”包含我想在片語中的單詞“an”之後粘貼的單詞“awesome”:

This is an editor

例如,在gedit中,粘貼後:

This is an awesome editor
                 ^ Cursor is here

vi中:

This is an awesome editor
          ^ Cursor is here

在這方面,我可以將vi更改 為(例如)gedit嗎?

在 vim 中,使用gpandgP而不是pandP將游標留在粘貼的文本之後。如果要交換綁定,請將以下幾行放入您的.vimrc:

noremap p gp
noremap P gP
noremap gp p
noremap gP P

奇怪的是,在 vim 中,即使在兼容模式下,pP將游標留在最後粘貼的字元上作為字元緩衝區。

我不知道如何在其他 vi 版本中更改它。

']或者'>在這裡也可能有用。

來自:h motion.txt

‘] `] 到先前更改或拉出的文本的最後一個字元。

‘> `> 到目前緩衝區中最後一個選定的可視區域的最後一行或字元。對於塊模式,它也可以是最後一行的第一個字元(以便能夠定義塊)。請注意,“選擇”適用,該位置可能就在可視區域之後。

引用自:https://unix.stackexchange.com/questions/5056