Saya menggunakan Ubuntu dan mencoba untuk menghapus semua 100 baris dari vi
editor tetapi saya mendapat pertanyaan wawancara untuk melakukan ini dalam satu perintah.
command-line
vi
command
mayur Mehta
sumber
sumber
echo -n > <file>
menghapus semua baris dari file (sebenarnya hanya menimpa file dengan "").echo
sama sekali untuk itu;> $file
berfungsi dengan baik.vi
dalam sebuah wawancara?vim-gtk
paket, karena itu memberi Anda akses ke xclipboard dalam vim), ketikvimtutor
di baris perintah (bukan dalam vim) untuk mendapatkan tutorial interaktif dari dasar-dasarnya. Seharusnya tidak memakan waktu lebih dari setengah jam, dan ini adalah panduan pemula terbaik untuk menggunakan vi / vim yang mungkin Anda temukan.vi
(secara lisan atau dengan resume) atau jika pertanyaan diawali dengan, "Oke, sebagai sysadmin Anda harus tahu sesuatu tentang editor baris perintah, kan ? Anda pernah menggunakanvi
? "Jawaban:
Dalam mode normal, lakukan
dd
menghapus baris saat ini. Prefacing perintah dengan100
menyebabkannya mengulangi 100 kali.Jika ada kurang dari 100 baris dalam file mulai dari baris saat ini, tergantung pada
vi
implementasinya, itu akan gagal untuk menghapus atau menghapus sebanyak yang ada. Dalam kasusvim
, itu tergantung pada apakah opsicp
aliascompatible
aktif atau tidak.sumber
100dd
adalah jawaban yang benar. Aku ingin tahu apa yang kamu lakukan.hapus 100 baris ke depan dari (termasuk) yang sekarang
ulangi dd (hapus baris saat ini) 100 kali:
hapus dari baris saat ini ke 99 baris ke depan
hapus 100 baris mundur dari (termasuk) yang sekarang
hapus baris dalam rentang tertentu dengan nomor baris
hapus baris dalam rentang yang dimulai dengan baris saat ini
dll. dll
sumber
:.,+99d
Jika semua baris dalam file harus dihapus, perintah vi ini menentukan kisaran penghapusan:
1
menunjukkan baris pertama dan$
menunjukkan baris terakhirsumber
:%d
(dalam ":" konteks, ":% ..." adalah jalan pintas untuk ": 1, $ ...")d
G
kunci & rarr; bunuh semua konten dari aktual [mis. baris atas] ke baris bawahAnda ingin menghapus semua baris dalam file? Buka file dengan
vi
. Sementara di awal baris pertama - lokasi default kursor ketika Anda baru saja membuka file - tekan Escdiikuti oleh dG.Sekadar diketahui, tindakan
d
mengindikasikan delete, danG
menunjukkan baris terakhir file. Jadi, ketika pada sembarang baris yang Anda tekan dG, itu menghapus semua baris mulai dari baris saat ini sampai yang terakhir.Jika Anda tahu mana garis berturut-turut untuk menghapus - katakanlah, dari baris 101-200 - ketik urutan kunci berikut: Esc:101,200d.
sumber
Tidak masalah di mana Anda berada dalam file, Anda dapat melakukannya
ggdG
:%d
akan lebih baik dalam penekanan tombol kurang. Nah, menghitungshift
danenter
kunci, sebenarnya dua penekanan tombol lebih dari yang di atas.Melakukan sesuatu seperti
100dd
hanya akan menghapus hingga 100 baris dari tempat Anda berada, dan itu mungkin tidak menghapus semua baris dari file, tergantung pada posisi baris Anda saat ini.sumber
Esc dan dd. n adalah jumlah baris untuk dihapus dari dan termasuk baris saat ini. Tekan tombol "Esc", lalu "n" dan kemudian "dd". Untuk meningkatkan pemahaman Anda
sumber