İmleci vim'deki dosyanın sonuna taşıma


409

İmleç Vim dosya sonuna (yani son satırın sonuna) gitmek istiyorum, altı tuş vuruşları yazmak zorunda:

<ESC>G$a- bu , klavye düzenimde ESC+ Shiftg+ Shift4+ anlamına geliyor a.

Bunu nasıl daha verimli bir şekilde yapabilirim?

Düzenli olarak birçok farklı makinede çalıştığım için .vimrc dosyasını her zaman değiştiremiyorum, bu yüzden bu dosyayı düzenlemek veya oluşturmak zorunda kalmadan yanıtları arıyorum.


8
Sadece işaret etmek istediğinizde, gösterdiğiniz komutlar aşağıdaki gibi temsil edilmelidir:, <esc>G$aharfi büyük harf yaparak vardiyayı gösterirsiniz. $Üst karakter + 4 yerine bir gösteri gösterirsiniz , çünkü klavye ne olursa olsun bu tuşun ( $) işlevi değişmez, ancak üst karakter + 4 yaparsanız anlam değişebilir. :)
greduan

3
@Eduan Genel olarak katılıyorum, ancak bu durumda aslında tuş basımları da alakalı. Her ikisini de ekledim :-)
timss

@Eduan Verimlilik sorunu için, gerçek komutlar önemli değil. Tuş vuruşları yapar. Diller arasında klavye düzeninde büyük farklılıklar $olduğundan, ABD klavyesinde nerede olduğunu bilmiyorum ve komuta giren Amerikalılar $için sadece bir tuş vuruşu olabilir. Benim için (bir Alman klavyesiyle) iki tuş vuruşu olduğunu açıkça göstermek istedim.

1
@ IC ne. Bunu anlayabiliyorum. Sadece bunu belirtmek istedim, böylece gelecekte biliyorsun. :)
greduan

Yanıtlar:


410

Açıkça yapmadan önce hattın sonuna gitmek gerek yok a, kullanımı A;
Satır sonuna [sayı] kez metin ekle

<ESC>GA


3
Normal modda kalmak istiyorsanız G)(veya <ESC>G)ekleme modundaysanız ve son karakter üzerinden normal modda bitirmek istiyorsanız) deneyin . Aynı sayıda tuş vuruşu, ancak ekleme modu yerine normal modda bitirmek için. Bir insert mode komutu veya edit yerine son kelimede normal bir komut çalıştırmak istediğimde bunu yararlı buluyorum.
Alejandro

1
@Alejandro Yararlı olsa da ), [count]cümleler üzerinde ilerler ve bu nedenle örneğin son satırsa satır sonuna gitmez This is a test. Foo bar.. Yine de birçok kod için çalışacaktır, bu genellikle cümleler olarak kabul edilmez ve bu nedenle yine de sona erecektir.
timss

Bir sonraki satırı yazmayı planlıyorsanız <ESC> G o, satır başını döndürür ve sizi bir sonraki satıra (dosyanın sonunda) ekleme moduna sokar, birkaç tuş vuruşunu kaydeder.
broc.seib

1
Ayrıca ekleme moduna geçmek istemiyorsanız kullanın G$.
BladeMight

498

Bu daha hızlı. Sadece bunu kullan

:$

16
Bu son sütuna sadece son satıra
geçmiyor

6
Hızlı bir şekilde dosyanın sonuna gitmek istiyorsanız ve klavye kısayollarınız karışıksa, bu doğru komuttur. Teşekkürler!
joemar.ct

9
: $ + End bu durumda yapardı.
karthik

1
Bu, sonunda <ENTER> gerektirir ve aynı zamanda çizginin sonuna gitmeyi de gerektirir, bu da onu daha hızlı hale getirmez.
Alejandro

1
: $ hile yapar! sorusu soru olarak dosyanın sonuna gidiyor! teşekkürler
Sijan Shrestha

130

Hit Escardından basın: Shift+G


3
Bu, dosyanın sonuna değil, son satırın başına gider.
Jordan Running

5
bu benim için dosyanın sonuna gidiyor ve çok güzel bir kolay tuş takımı
Jacob Garby

G sütun numarasını aynı tutar (mümkünse) ve son satıra gider. Jacob muhtemelen hattın sonunda ve Ürdün komuta çalışırken cephede idi.
run_the_race

39

Yeni başlayanlar için geri dönüşe gerek yok. G$yapacağım. Ve sayarak <Esc>ve anormal mod komutunun uzunluğunda yanıltıcı oluyorsunuz .

Ancak, isterseniz Ctrl+ kullanabilirsiniz End.


8
buCtrl-END
zmo

EndKlavyemde -Key yok (demek istediğin buysa).

Aslında TIMSS şovlarla cevap ben de saymak ki <ESC>ve ao değiştirmek için bir yol bildiğini çünkü Shift+$, aile A.

1
@ çoğu dizüstü bilgisayar klavyesi şu anda ev / son Fn ile birlikte yukarı / aşağı / sola / sağa
koymuşlarsa

22

"İmleci vim'deki dosyanın sonuna taşı" diye düşündüm.

Dosya sonu: Esc+ Dosya G
başı Esc+ g(veya ggzaten komut alanındaysanız)


21

Dosyanın son satırına gitmenin en iyi yolu G. Bu, imleci dosyanın son satırına götürecektir.

Satırdaki son sütuna gitmenin en iyi yolu $. Bu, imleci geçerli satırın son sütununa taşır.

Böylece sadece G$dosyanın sonuna ve son satıra ulaşırsınız.

Dosyanın sonuna ekleme moduna girmek istiyorsanız, o zaman yapmanız yeterlidir GA. Bunu yaparak dosyanın son satırına gidersiniz ve son sütuna ekleyerek ekleme moduna girersiniz. :)



11

Bir sonraki satırı yazmayı planlıyorsanız ESCGo, satır başını döndürür ve sizi bir sonraki satıra (dosyanın sonunda) ekleme moduna sokar, birkaç tuş vuruşunu kaydeder.


6
  • Ctrl + Home = Dosyanın başına atla
  • Ctrl + End = Dosyanın sonuna atla

3

Bu daha hızlı:

<ESC>GA

5
Neden özellikle cevap vermiyorsa, yinelenen bir cevap yayınlamalısınız A?
timss

3

.Vimrc'deki bir anahtarla, örneğin F3 ile eşleyebilirsiniz.

inoremap <F3> <Esc>GA

2
Mümkün olsa da, bu genellikle kötü bir fikirdir. Bunun yerine kas hafızasını hedefleyin ve GAveya kullanın G$.
timss

Yine de 1 tuş vuruşuyla kazanıyorum :) Daha ciddi bir notta, vim'de gerçekten hızlı bir şeye ihtiyacınız varsa, .vimrc'nin nasıl öğrenileceğini öğrenmek faydalıdır.
Tim

Ayrıca OP'ye bakmasını söylemek yerine eksiksiz bir harita örneğine sahip olmak da iyi olur. Eğer bulamazsanız OP nasıl olması gerekiyor?
FDinoff

1
Kendi evinizden uzaklaşmanız gerektiğinden hiçbir şey kazanamazsınız. Ayrıca, bunu bir başkası config veya hatta vi, kullanacaksanız kullanamazsınız. Gerçekten zamandan tasarruf etmiyorsun. Bir şey varsa, C-endocaklar tarafından belirtildiği gibi kullanın .
timss

Buradaki yorumlara katılıyorum, ancak sizin için eşlemeyi temizledim
D. Ben Knoble

0

İmleci bir satırın sonuna taşıma ve bir mac terminalinde düzenleme yolunu arıyordum, işte benim için nasıl çalıştığıydı. Düzenleme modunuzdan çıkın, g_ yazın (bu 'g' sonra da iki nokta üst üste olmadan alt çizgi yazın), ardından komut dosyalarınıza "ekleyebilmeniz" için "a" tuşuna basmanız yeterlidir


Belki de arıyordun A?
D. Ben Knoble

A'yı denedim ama pek işe yaramadı
Xinyi Xiang

bu garip, Atemelde$a
D. Ben Knoble

0

Başka bir alternatif:

:call cursor('.',strwidth(getline('.')))

Bir işlev yazıyorsanız bu yararlı olabilir. Başka bir durum, belirli bir şablonu açıp ilk satırın sonuna atlamam gerektiğinde yapabilirim:

vi +"call cursor('.',strwidth(getline(1)))"  notetaking_template.txt

Yukarıdaki ile de yapılabilir

vi +"execute ':normal! $'" notetaking_template.txt

Ayrıca bakınız:

vim - Geçerli satırın uzunluğunu al


0

Dosya türünün sonuna pano içeriğini yapıştırmak istiyorsanız:

:$ put +

$ ............ last line
put .......... paste 
+ ............ clipboard
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.