Vim'de satır sonuna nasıl geçebilirim?


1192

Genellikle komut modunda, özellikle satırlara atlayarak, vb.


19
10 dakikadan daha kısa sürede kapsanan temel vim komutları youtube.com/watch?v=71YTkxUNwmg
eomeroff

14
Vimtutor'dan birkaç dakika geçirmenin nesi yanlış? Zaten Vim kurulumunuzun bir parçası ve size temelleri gösteriyor.
dash-tom-bang

@ dash-tom-bang Burada oldukça yüksek bir puan aldılar ... :) Ama evet haklısın vimtutorharika. Muhtemelen bunu bilmiyorlardı?
Pryftan

Yanıtlar:


2050

Sadece $ (dolar işareti) tuşu. Sen kullanabilirsiniz Asatırın sonuna taşımak ve düzenleme modu (Append) geçin. Son boş olmayan karakteri atlamak için önce tuşuna, gsonra _tuşlarına basabilirsiniz .

Karşıt Aolan Ibir kenara (satır başında yerleştirin modu). Sadece düğmesine basmak ^imlecinizi satırın boşluk olmayan ilk karakterine yerleştirecektir.


81
Son boş olmayan g_
alana

2
Bazen g_boş karakterler içermediğinden varyasyon daha yararlıdır
rogercampos

6
_G varyantı, görsel modda çalışırken gerçekten yararlıdır, çünkü sonunda herhangi bir satırsonu olmadan satırı kullanmanıza izin verir.
Greg Robbins

2
Ev ve Bitiş tuşları normal bir klavyede çalışırken, dizüstü bilgisayar kullanırken $ ve ^ gerekir :)
Sridhar Sarnobat

Listeye ^ eklemelisiniz.
Tek

304

Birçok insanın dediği gibi:

  • $ seni çizginin sonuna götürür

Ayrıca:

  • ^veya _sizi satırdaki ilk boşluk olmayan karaktere götürür ve
  • 0(sıfır) satırın başına gelir. Beyaz boşluk

Biliyordum | bizi çizginin başına götürür ama 0'ın farkında değildim. Hem 0 hem de | tam olarak aynı şeyi yap, evet?
Kamran Bigdely

8
@kami: açıklamalar farklı olsa da aynı şekilde davranıyorlar. Ancak pipe |komutu sayılabilir, örneğin 3 | Üçüncü sütuna atlamak için.
Paul Ruane

136
  • $ satırdaki son karaktere gider.
  • g _ boşluk olmayan son karaktere gider.

  • g $ ekran satırının sonuna gider (bir tampon satırı birden çok ekran çizgisine sarıldığında)


G_'nin $ b ile aynı şey olduğunu hissediyorum
Dave Aaron Smith

3
@DaveAaronSmith: bhiç aynı şey olmayan bir önceki kelimenin başına gider. Kabaca buna eşit $ge.
Paul Ruane

9
Kullandığım _ve g_gibi görsel / yanking için $de kopyalar / Yeni hat (LN) karakteri silin.
Ernest

Benim için $ geçerli ekran satırının sonuna gider (kaydırıldığında). Nedenini anlayamadım. g_hattın asıl sonuna ulaşmak için bulduğum tek yol.
ezuk

@ezuk benim $için sarılsa bile hattın sonuna gider. Davranışını ayarlamak için hiçbir ayar bilmiyorum. Belki .vimrc tarafından yeniden eşleştirildi g$?
Paul Ruane

66

Ana soru - satır sonu

$ satırın sonuna gider, komut modunda kalır

A satır sonuna gider, ekleme moduna geçer

Tersine - satır başlangıcı (teknik olarak ilk boşluk olmayan karakter)

^ satırın başına gider, komut modunda kalır

I (büyük harf i) satırın başına gider, ekleme moduna geçer

İleri - satır başlangıcı (teknik olarak boşluktan bağımsız olarak ilk sütun )

0 (sıfır) satırın başına gider, komut modunda kalır

0i (sıfırın ardından küçük harf i) satırın başına gider, ekleme moduna geçer

Vi öğrenmeye başlayanlar için vi'yi tipik Windows GUI Düzenleyicisi imleç hareketi ve kısayol tuşlarına yan yana listeleyerek vi'ye iyi bir giriş.

Windows kullanıcıları için vi editörü


3
İçin analog Ideğil 0ama ^, hem de Ive ^ilk gidin boşluk olmayan hattının karakteri ama 0(adından da anlaşılacağı gibi) kolonuna sıfır gider.
wchargin

@wchargin true, analogun ne 0olacağını bulamayacağımı düşündüm ? (satırın ilk karakterine (= sütun 0) gidin ve ekleme moduna gidin)
franssu

@franssu: Bildiğim tek kişi 0i. :-)
wchargin

@wchargin - Teknik doğruluk için teşekkürler. Gönderiyi güncelledim.
ap-osd

42

Geçerli satırınız görünür ekranın etrafındaki bir sonraki satıra sarılırsa, ekran satırının sonuna ulaşmak için g $ kullanabilirsiniz .


3
Ben sadece keşfedilen ile yukarı ve komutları aşağı öncesi bekleyen gr hattı tabanlı ziyade, imleç ekran tabanlı hareket vim marka. Yani gj ve gk uzun bir çizgi üzerinde yukarı ve aşağı hareket etmenizi sağlar. Gerçekten kullanışlı.
Druckles

1
Ayrıca gw ve bir şey yazmanın j ve k'yi kalıcı olarak bu şekilde davranacak şekilde değiştirdiğini keşfetti . Nasıl veya neden olduğundan emin değilim. Bunu açıklayan var mı?
Druckles

4
@Druckles: Biraz geç cevap, ama hala merak ediyorsanız (veya bunu okuyan başka biri ise) gwve gqmetni yeniden biçimlendiren komutlarsanız. (bakınız :h gwve :h gq) Muhtemelen olan şey, gw{motion}ekran satırlarının gerçek satırlara karşılık gelmesi için bazı metinleri değiştirip değiştirmiş olmanızdı .
pandubear14


13

Çoğu durumda, bir dizenin içindeyken çift tırnak içine alınır veya bir ifade yazarken escape tuşuna basmak ve ok tuşuyla bu satırın sonuna gitmek ve noktalı virgül ( ;) tuşuna basmak istemeyiz. çizgi. Vimrc dosyanızın içine aşağıdaki satırı yazın :

imap <C-l> <Esc>$a

Hat ne diyor? Ctrl + l'yi bir dizi komutla eşler. Aynı anda Esc(komut modu), $(satır sonu), a(ekle) tuşlarına basmanızla eşdeğerdir .


Bunun için teşekkürler. İlk makinemde olduğu gibi satırın sonuna gitmek için Ctrl-
e'yi vim'e

1
Kabul edilen cevabın dediği gibi, A'yı aynı şeyi yapmak için basabilirsiniz.
trysis

4
@ yanlış anladıysanız, bu oldukça güzel olan düzenleme modundan uzaklaşmaz.
Marconi

2
Haklısın. vimkesinlikle böyle şeylerle çok daha az zamanda daha fazlasını yapmanıza izin verir. @razorxpress, küçük bir ayar olur imap <C-l> <Esc>A, bu da Ctrl + l tuşlarına Esc(çıkış ekleme modundan) ve ardından A(satır sonuna eklenir ) tuşuna eşdeğer yapar .
trysis

3
Ben bunu harita için daha deyimsel yol olacağını düşünüyoruminoremap <C-l> <C-o>A
bennyty

12

'Son' tuşunun avantajı hem normal hem de ekleme modlarında çalışmasıdır.

'$' sadece normal / komut modunda çalışır, ancak klasik vi düzenleyicide de çalışır (vim'in ne zaman kullanılamadığını bilmek güzel).


38
Ne için ekleme modu etrafında asılı? Gün ışığından sonra sıradan bir vatandaş oraya gitmez. Orada neler olduğunu biliyorsun, değil mi? Kod orada kayboluyor, biliyor musun? Kaybolur ve bir daha asla duyulmaz.
Kale

3
Girdiğinizde Insert Mode'da kalmayı sevdiğim için bunun için teşekkürler Maalesef dizüstü bilgisayarımın bir End anahtarı yok. :(
ray

12

Ayrıca çizgi (veya belki de fiziksel çizgi) ile ekran çizgisi arasındaki ayrımı da not edin . Satır, Satır Sonu karakteriyle ("\ n") sonlandırılır. Ekran satırı, terminalinizde veya ekranınızda bir satır karakter olarak gösterilecek şeydir. Ekran genişliğinden daha uzun fiziksel çizgileriniz varsa ikisi birbirinden ayrılır, bu da e-posta ve benzeri şeyler yazarken çok yaygındır.

Ayrım, satır sonu komutlarında da görünür.

  • $ve 0sırasıyla fiziksel çizginin veya paragrafın sonuna veya sonuna gitme:
  • g$ve g0sırasıyla ekran satırının veya paragrafın sonuna veya başına gitme.

Her zaman ikinci davranışı tercih ederseniz, tuşları şu şekilde yeniden eşleyebilirsiniz:

:noremap 0 g0
:noremap $ g$

1
Hattın son boşluk olmayan alanına nasıl ulaşılır? (bir ekran çizgisi veya fiziksel çizgi olsun)
Kamran Bigdely

g_fiziksel çizginin son boşluk olmayan alanıdır . Ekran çizgisine ne dersiniz?
trysis

10

ASatırın sonundan başlayarak düzenleme moduna girmek için basın .


9

Ya da açık bir cevap var: Endsatırın sonuna gitmek için anahtarı kullanın.


1
Evet, mac terminali anahtarları ele geçirdiğini fark ettim ve onları terminal içinde çalışan şeylere iletmiyor. Bir mac kullandığımda beni rahatsız eden şeylerden biri.
davr

Vim kullanmanın tüm amacı 'End' gibi anahtarlar kullanmak zorunda değildir. Asla evden ayrılmayın.
Jon Thoroddsen

7
Mac'te End tuşu yoktur.
kenorb

1
@kenorb Yorum gönderdiğimde vardı ... ama Apple yıllar boyunca özellikleri kaldırmayı seviyor. netdna.webdesignerdepot.com/uploads/2009/01/… Bu aslında tüm zamanların en sevdiğim klavyelerinden biri
davr

9

Standart terminalde vim kullanmak için macbook kısayol tuşunu göremiyorum. Umarım birine yardım eder. MacOS kullanıcıları için (macbook pro 2018'de test edilmiştir):

fn+ - başlangıç ​​çizgisine git

fn+ - bitiş çizgisine git

fn+ - sayfayı yukarı taşı

fn+ - sayfayı aşağı taşı

fn+ g - imleci belgenin başına götür

fn+ shift + g - imleci belgenin sonuna taşıma

Son iki komut için bazen iki kez dokunmanız gerekir.


6

Muhtemelen ilgisiz, ancak geçerli satırdan sonra yeni bir satır başlatmak istiyorsanız, satırın herhangi bir yerinde o kullanabilirsiniz.


3

En kolay seçenek girmek $. Metnin bloklarıyla çalışıyorsanız, komutunu takdir olabilir {ve }sırasıyla ileriye bir paragraf geri çekmeme ve amacıyla.


2

Mac'in desteklemediği (Windows ve kullanımda Linux'tan) Ekle modundaki satırların başlangıcına ve sonuna ulaşmam için Home / End'e alışkındım. Bu özellikle sinir bozucu çünkü uzak bir sistemde vim kullandığımda da kolayca yapamıyorum. Acı verici bir deneme yanılma işleminden sonra .vimrc, aynı şeyi yapan ama çizginin başlangıcı için Ctrl-A'ya ve çizginin sonu için Ctrl-D'ye bağlandım. (Bazı nedenlerden dolayı, sanırım Ctrl-E ayrılmış ya da en azından onu bağlamak için bir yol bulamadım.) Keyfini çıkarın.

:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>

Burada ASCII kontrol karakter kodları için iyi bir grafik var:

http://www.physics.udel.edu/~watson/scen103/ascii.html

Ayrıca Ctrl-V + Ctrl- de yapabilirsiniz, ancak bu böyle yerlere de yapışmaz.

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.