vi / vim içine yapıştırdıktan sonra imleç konumu


12

Vi / vim'de beni her zaman rahatsız eden bir şey :

Bir metni "sorarsam" (diğer adıyla "kopyalar"), daha sonra dosyadaki başka bir yere gidip "yapıştır" yaparsam, imlecim yapıştırdığım metnin başında kalır . Bu, en modern editörlerin yaptıklarından farklıdır, bu da imleci yapıştırdığım metnin sonuna yerleştirir.

Örneğin, "kopya arabelleği" varsayıldığında, "an" kelimesinden sonra yapıştırmak istediğim "harika" kelimesini içerdiğini varsayarsak:

This is an editor

Örneğin, gedit'te , macundan sonra:

This is an awesome editor
                  ^ Cursor is here

İn vi :

This is an awesome editor
           ^ Cursor is here

Ben değiştirebilir miyim vi (örneğin) gibi davranmak gedit bu konuda?


Daha da garip olan şey, Vim sürümümle birlikte: yanmış metin bir satırdan daha fazla yayılıyorsa, imleç yapıştırılan metnin başında bırakılır, aksi takdirde yapıştırılan metnin sonunda kalır.
Alexey

üzgünüm, en azından
Alexey

Yanıtlar:


12

Vim, kullanımda gpve gPyerine pve Pyapıştırılan metinden sonra imleci terk etmek. Eğer bağlamaları takas istiyorsanız, aşağıdaki satırları koymak .vimrc:

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

Tuhaf bir şekilde, vim içinde pve Pimleci bir karakter arabelleği için, yapıştırılmış modda bile, son yapıştırılan karakter üzerinde bırakın.

Diğer vi sürümlerinde bunu nasıl değiştireceğimi bilmiyorum.


1
Ben "vi" çoğu dağıtımda genellikle gerçekten "vim" olduğunu düşünüyorum, değil mi?
JoelFan

@JoelFan: Gömülü olmayan Linux dağıtımlarının çoğu, belki de. Başka yerde, hayır. Sadece bir vim çözümü ile sorun yaşıyorsanız, vi'yi oyuna getirmeyin: vim'in yapılandırılabilirliğinin% 99'u temel vi'da değil.
Gilles 'SO- kötü olmayı bırak'

"Nvi" hakkında Waht? Tüm farklı viler hakkında kafam karıştı. Ben debian ve ubuntu çoğunlukla insterested
JoelFan

1
@JoelFan: nvi oldukça basit bir vi, orijinal uygulama ile uyumluluk ve daha fazlası değil. Yalnızca programları kolayca yükleyebileceğiniz masaüstü kurulumları veya sunucularla ilgileniyorsanız, vim'in kullanılabilir olduğunu varsayabilirsiniz. Daha az vi uygulamalarına aşina olmak, yalnızca kilitli sunucular ve katıştırılmış aygıtlarda yararlıdır.
Gilles 'SO- kötü olmayı bırak'

1
"Vi"
işlevini

0

Bunun tasarım gereği olduğundan eminim. "P" (küçük P harfi) kullanarak yapıştırırsanız , geçerli konumdan veya çizgiden sonra yapıştırılması gerekir . Ancak, "P" (büyük P) kullanarak yapıştırırsanız , geçerli konumdan veya çizgiden önce yapıştırılır . İstediğiniz davranış imlecin yeni yapıştırdığınız metnin sonuna gelmesini istiyorsa, "p" yerine "P" kullanma alışkanlığını edinmeyi deneyin.

Bahse girerim yeterince derine kazarsanız, .vimrc'nize koymak için "p" kullansanız bile imleci her zaman hamurunuzun sonuna götürecek bir vim tarifi bulabilirsiniz.


2
Pimleci yapıştırılan metnin başlangıcında vi olarak bırakır (en azından nvi ve POSIX başına).
Gilles 'SO- kötü olmayı bırak'

p ve P, kesici ucun çevresindeki metne göre konumunu etkiler. eklenen metne göre daima aynı konumda olan imlecin kendisinin konumunu etkilemezler.
eMBee
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.