Ogólnie rzecz biorąc, usuwam linie z jednego pliku, przełączam się do innego pliku i wklejam.
Również generalnie używam znaków. Zamiast wpisywać rzeczywiste liczby, uderzam mb
, aby zaznaczyć linię początkową, a następnie przechodzę do linii końcowej i uderzam d'b
, aby usunąć z powrotem do linii oznaczonej jako b
. Ale można użyć mb
oznaczyć linię rozpoczęcia i me
aby zaznaczyć linię końcową, a następnie uruchomić komendę: ex
:'b,'e w somefile.txt<Enter>
Oczywiście można użyć dowolnej litery z a
przez z
dla swoich znaków; Zwykle używam b
i e
, ale możesz używać tego, co lubisz.
Jak bym przenieść linie:
m'b
<navigate to end line>
d'b
:n somefile.txt<Enter>
p
Ctrl+^
Ctrl +^przełączniki z obecnego otwartego pliku do poprzedniego otwartego pliku. (Możesz też po prostu otworzyć panel i przełączyć panele, jeśli wolisz, panele nie działają w zwykłym vi, ale działają w vim.)
Powyższe zakłada, że ustawiono opcję autowrite
. Z autowrite
, komenda :n
i Ctrl +^po prostu zapisują bieżący plik, a następnie przełączają pliki, zamiast narzekać, że plik został zmieniony bez zapisywania go. Możesz także wykonać powyższe czynności i po prostu jawnie zapisać plik przed użyciem :n
lub Ctrl + ^.
Nawiasem mówiąc, używam Ctrl +^tak bardzo, że zmapowałem to na K
. Łatwiejsze do wpisania, ale mam ten zwyczaj dawno temu, kiedy musiałem czasami używać niemego terminalu, który nie mógł wpisać Ctrl + ^.
Przy okazji, po usunięciu linii, przechodzą one do "bufora bez nazwy". W vim, nienazwany bufor jest zachowywany po przełączeniu plików. W oryginalnym vi, nienazwany bufor jest wyczyszczony. Tak więc powyższe nie będzie działać ze starym vi. Możesz sprawić, żeby działało, usuwając do nazwanego bufora, a następnie wklejając go z nazwanego bufora; który działa w dowolnej wersji vi.
m'b
<navigate to end line>
"ad'b
:n somefile.txt<Enter>
"ap
Ctrl+^
Powyższy usuwa w buforze o nazwie a
, a następnie wkleja z a
w drugim pliku. Działa to oczywiście w vimie; po prostu tego nie potrzebujesz.
To interesujący sposób, aby sobie z tym poradzić! Niby elegancko. – steveha