vi / vimに貼り付けた後のカーソル位置


11

vi / vimで常に私を悩ませてきた1つのこと:

一部のテキストを「ヤンク」(別名「コピー」)し、ファイル内の別の場所に移動して「貼り付け」を行うと、貼り付けたテキストの先頭にカーソルが留まります。これは、貼り付けたテキストの最後にカーソルを置くほとんどの最新のエディターとは異なります。

たとえば、「コピーバッファ」に「素晴らしい」という単語が含まれていると仮定すると、フレーズの「an」という単語の後に貼り付けます。

This is an editor

たとえば、geditで、貼り付け後:

This is an awesome editor
                  ^ Cursor is here

in vi

This is an awesome editor
           ^ Cursor is here

この点でviを変更して (たとえば)geditのように動作させることはできますか?


私のバージョンのVimのリストでさらに奇妙なのは、ヤンクされたテキストが複数行にわたる場合、カーソルは貼り付けられたテキストの先頭に残り、そうでなければ貼り付けられたテキストの末尾に残ります。
Alexey

申し訳ありませんが、少なくとも
Alexey

回答:


12

vimでは、カーソルを貼り付けたテキストの後に残すために、gpandのgP代わりにpand Pを使用します。バインディングを交換したい場合は、次の行をに入れます.vimrc

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

vimの中に不思議な、pPさえ互換モードでは、文字バッファの最後の貼り付けた文字の上にカーソルを残します。

他のviバージョンでこれを変更する方法がわかりません。


1
ほとんどのディストリビューションでは、通常「vi」は本当に「vim」だと思いますよね?
JoelFan 2010

@JoelFan:ほとんどの非組み込みLinuxディストリビューションでしょう。他の場所ではありません。vimのみのソリューションに問題がない場合は、viをプレイに取り入れないでください。vimの構成可能性の99%は、基本的なviにはありません。
Gilles「SO-邪悪なことをやめなさい」2010

「nvi」についてはどうですか?私はすべての異なるviについて混乱しています。私は主にdebianとubuntuに興味があります
JoelFan

1
@JoelFan:nviはかなり基本的なviであり、元の実装との互換性を目的としており、それ以上のものはありません。プログラムを簡単にインストールできるデスクトップインストールまたはサーバーのみに関心がある場合は、vimが利用可能であると想定できます。少ないvi実装に精通していることは、ロックダウンされたサーバーと組み込みデバイスでのみ役立ちます。
Gilles「SO-邪悪なことをやめなさい」

1
私は物事をインストールできるサーバーで主に「vi」を使用しています、はい
JoelFan

0

これは仕様によるものだと確信しています。"p"(小文字のP)を使用して貼り付ける場合、現在の位置または行のに貼り付けることなります。ただし、「P」(大文字のP)を使用して貼り付けると、現在の位置または行のに貼り付けられます。カーソルを新しく貼り付けたテキストの最後に置くことが目的の場合は、「p」ではなく「P」を使用する習慣をつけてください。

深く掘り下げれば、.vimrcに入れるvimレシピを見つけて、 "p"を使用しても、常にカーソルを貼り付けの最後に移動させることができるでしょう。


2
Pvi内の貼り付けられたテキストの先頭にカーソルを置きます(少なくともnvi内およびPOSIXごと)。
Gilles「SO-邪悪なことをやめよ」

pとPは、周囲のテキストに対する挿入の位置に影響します。挿入されたテキストに対して常に同じ位置にあるカーソル自体の位置には影響しません。
eMBee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.