Bir çizgiyi vim içinde yukarı veya aşağı hareket ettirme komutu (veya kısayol) nedir? Şu andaki iş akışım çizgiyi yanklamak (kopyalamak) ve bu çizgiyi silmek ve bu çizgiyi koymaktan (yapıştırmak).
Bir çizgiyi vim içinde yukarı veya aşağı hareket ettirme komutu (veya kısayol) nedir? Şu andaki iş akışım çizgiyi yanklamak (kopyalamak) ve bu çizgiyi silmek ve bu çizgiyi koymaktan (yapıştırmak).
Yanıtlar:
İlk önce, yank ve silmek gerekmez ; ikincisi ayrıca silinen içerikleri (varsayılan veya belirtilen) kayıt defterine koyacaktır. Bu nedenle, ddp
/ ddkP
bir satırı bir aşağı / yukarı hareket ettirmek için kullanılan yaygın komutlardır.
Alternatif olarak, kullanabileceğiniz :move
komutu, yani :move +1
/ :move -2
; Bu, kayıt defterini kapatmaz ve ayrıca tüm aralıkları da taşıyabilirsiniz. Bunu kısaltmak için anahtar eşlemeleri kolayca tanımlayabilirsiniz.
(Genellikle onlarla geldiğini ve ek konfor) Eklenti sakıncası yoksa, her iki Tim Pope en bozulmamış eklenti ve benim LineJuggler eklenti sağlamak ]e
/ [e
eşleştirmeleri hatları (ve birkaç fazla hareket etmeye; çeşitli kullanımlar için Tim, maden işleme odaklı çizgi (ler)).
En kolayı şudur: :m+
veya Ingo'nun önerdiği gibi :m-2
kısaltmasıdır :move
.
Veya görsel modu ( V) kullanarak çizgiyi ( d/ x) keserek yapıştırın ( p- imlecin altında, imlecin Püstünde), imlecinizi yapıştırmadan önce doğru yere getirdikten sonra yapıştırın (bu nedenle Vxp/ özet olarak Vdp).
Görsel modda birden fazla satır taşırken, o zaman :m '>+1
(bir satırı aşağı taşımak için) veya :m '<-2
(bir satırı yukarı taşımak için) kullanmanız gerekir.
Örnek yararlı eşleme ( Shift+ ↑/ Shift+↓):
nnoremap <S-Up> :m-2<CR>
nnoremap <S-Down> :m+<CR>
inoremap <S-Up> <Esc>:m-2<CR>
inoremap <S-Down> <Esc>:m+<CR>
Yüce Metin ( Win / OSX ) benzer.
İşte vim wikia'da önerilenler :
nnoremap <A-j> :m .+1<CR>==
nnoremap <A-k> :m .-2<CR>==
inoremap <A-j> <Esc>:m .+1<CR>==gi
inoremap <A-k> <Esc>:m .-2<CR>==gi
vnoremap <A-j> :m '>+1<CR>gv=gv
vnoremap <A-k> :m '<-2<CR>gv=gv
Normal modda veya ekleme modunda, geçerli çizgiyi aşağı taşımak için Alt-j düğmesine veya geçerli çizgiyi yukarı taşımak için Alt-k düğmesine basın.
Görsel olarak bir satır bloğu seçtikten sonra (örneğin, V düğmesine basarak, sonra imleci aşağı hareket ettirerek), tüm bloğu aşağı taşımak için Alt-j düğmesine veya bloğu yukarı taşımak için Alt-k düğmesine basın.
Ayrıca bakınız:
Bir satırın üstündeki satırla yer değiştirmek istersem genellikle aşağıdakileri yaparım.
ddkP
açıklama
ddp
FWIW, işte yıllardır kullandığım şey. Girintiyi otomatik olarak ayarlarken mevcut çizgiyi normal modda yukarı veya aşağı, görsel moddaki seçimi hareket ettirir.
nnoremap ,<Up> :<C-u>silent! move-2<CR>==
nnoremap ,<Down> :<C-u>silent! move+<CR>==
xnoremap ,<Up> :<C-u>silent! '<,'>move-2<CR>gv=gv
xnoremap ,<Down> :<C-u>silent! '<,'>move'>+<CR>gv=gv
ddkP
, aşağı hareket daha kolaydır:ddp
.