Saya memiliki dua baris dalam file teks seperti di bawah ini:
S<Switch_ID>_F<File type>
_ID<ID number>_T<date+time>_O<Original File name>.DAT
Saya ingin menambahkan dua baris di vi seperti di bawah ini:
S<Switch_ID>_F<File type>_ID<ID number>_T<date+time>_O<Original File name>.DAT
Baris kedua terhapus dan isi baris kedua ditambahkan ke baris pertama.
Bagaimana saya bisa melakukannya dengan menggunakan mode perintah in vi?
GJ
divim
akan pindah ke baris terakhir dan kemudian mencoba untuk bergabung ke baris berikutnya, satu-satunya tempat perintah bergabung tidak masuk akal. Ya, saya menemukan ini lucu :-)Vi atau Vim?
Lagi pula, perintah berikut ini berfungsi untuk Vim dalam mode 'nocompatible'. Itu, saya kira, hampir murni vi.
Jika Anda ingin melakukannya dari penggunaan perintah normal
Dengan 'gJ' Anda bergabung dengan garis apa adanya - tanpa menambahkan atau menghapus spasi putih:
Hasil:
Dengan perintah 'J' Anda akan memiliki:
Catat ruang antara
type>
dan_ID
.sumber
g/pattern/join
berfungsi di VIM sementarag/pattern/J
tidak. Dapat membantu beberapa orang di masa depan.Ini harus dilakukan:
J
sumber
:h J
akan memberi tahu Anda cara menonaktifkan fitur itu.gJ
jika Anda tidak ingin vim menambahkan spasi saat bergabung dengan garisIn vi,
J
(itu Shift+ J) atau:join
harus melakukan apa yang Anda inginkan, sebagian besar. Perhatikan bahwa mereka menyesuaikan spasi putih. Secara khusus, Anda akan berakhir dengan spasi di antara dua baris yang bergabung dalam banyak kasus, dan jika baris kedua indentasi bahwa lekukan akan dihapus sebelum bergabung.Di Vim Anda juga dapat menggunakan
gJ
( G, lalu Shift+ J) atau:join!
. Ini akan bergabung dengan garis tanpa melakukan penyesuaian spasi putih.Di Vim, lihat
:help J
untuk informasi lebih lanjut.sumber
gJ
danJ
adalah bahwa keduanya mengubah kursor ke titik bergabung, tetapi:join!
dan:join
jangan.Ganti saja "
\n
" dengan "".In vi / Vim untuk setiap baris dalam dokumen:
Jika Anda ingin mengonfirmasi setiap penggantian:
sumber
Jika Anda ingin bergabung dengan garis yang dipilih (Anda berada dalam mode visual), maka cukup tekan
gJ
untuk bergabung dengan garis Anda tanpa spasi sama sekali.Ini dijelaskan secara lebih rinci di situs vi / Vim Stack Exchange .
sumber
Tekan Shift+ 4("$") pada baris pertama, lalu Shift+ j("J").
Dan jika Anda ingin bantuan, masuk ke vi, lalu tekan F1.
sumber
Di Vim Anda juga bisa menggunakan
gJ
.ََ
sumber
Cara lain untuk menggabungkan dua baris tanpa menempatkan kursor ke baris itu adalah:
Di sini 6 adalah nomor baris di mana baris lain akan bergabung. Untuk menampilkan nomor baris, gunakan
:set nu
.Jika kita berada di kursor tempat baris berikutnya harus digabungkan, maka:
Dalam kedua kasus kita tidak perlu
g
suka:s#\n##g
, karena pada satu baris hanya\n
ada satu .sumber
Shift+V
untuk memilih semua garis yang akan digabungkan, kecuali yang terakhir, dan kemudian:'<,'>s/\n/, /
dalam contoh ini bergabung dengan garis sambil meletakkan koma dan spasi di akhir masing-masing. Perhatikan bahwa ketika sesuatu dipilih dan kita ketik:
dalam mode normal, maka'<,'>
muncul pada baris perintah secara otomatis.