Bagaimana cara menyimpan file yang diedit dengan vim?

66

Saya tidak dapat menyimpan perubahan setelah diedit

sudo vi /etc/network/interfaces

Teks sebelum diedit:

auto lo
iface lo inet ...

Diedit ke:

auto eth0
iface eth0 inet dhcp

Kombinasi atau urutan tombol apa yang harus saya tekan untuk menyimpan ini?

Dan
sumber
7
Jika Anda tidak nyaman dengan mengedit file di editor berbasis terminal seperti viatau vim, saya akan merekomendasikan menggunakan editor berbasis grafis seperti gedituntuk membukanya. Ganti sudo videngan gksu gedit.
Aditya
5
Atau gunakan sudo nanojuga baris perintah tetapi jauh lebih intuitif daripada vi.
Warren Hill

Jawaban:

125

Anda mungkin dalam mode edit / sisipkan. Anda harus mengetik urutan berikut:

  1. Esc, untuk keluar dari mode edit dan mundur ke mode perintah;
  2. :+ w+ q, Mulai dengan :(kolon) lalu tekan wdan akhirnya qke w ritus dan q uit (atau hanya :wmenulis tanpa berhenti)
  3. lalu tekan Enteruntuk valid.
Édouard Lopez
sumber
18

Saya biasanya menekan ESCdan kemudian menahan Shiftdan menekan zdua kali. Sama seperti Anda ingin mengetik dua huruf Z besar di editor kata :) Itu menyimpan dokumen Anda dan menutup editor Anda.

Sephiroth
sumber
4
Oh man, shift dan double z, apa logika desain di belakang yang saya bertanya-tanya, "apa perintah paling tidak intuitif yang bisa kita buat?", Ubuntu terkadang membuatku kesal
..
4
@ Sam, saya hanya ingin nitpick bahwa vi tidak ada hubungannya dengan ubuntu. Ubuntu pertama kali dirilis pada 2004, sementara vi dibuat oleh Bill Joy sekitar tahun 1976, terinspirasi oleh ed (dating kembali ke tahun 1971). Ini berarti bahwa pintasan di vi mendahului pintasan di hampir semua utilitas lain yang masih umum digunakan saat ini. Dalam semacam kebetulan, versi pertama emacs, yang memiliki cara pintas aneh yang sama sekali berbeda, juga dirilis pada tahun 1976. Upaya standardisasi muncul jauh kemudian.
yoniLavi
Wow terima kasih atas info @yoniLavi, poin saya masih sama, jadi semoga upaya standardisasi terus maju .. :)
S ..
@ Sam, vi keybindings sebenarnya jauh lebih standar daripada yang Anda pikirkan; mereka hampir ada di mana-mana. Praktis program apa pun dapat dibuat untuk meniru vi keybindings. Bahkan pengikat kunci Gmail standar jelas (untuk pengguna Vim) berdasarkan dari pengikat kunci vi.
Wildcard
bagaimana dengan kunci esc tidak bekerja? Sisipkan mode, baru saja berhenti.
pencipta
3

Periksa apakah Anda memiliki hak administratif (root) untuk mengedit file. gunakan perintah ini

whoami

Jika hasilnya bukan "root", maka Anda tidak seharusnya mengedit file.

Untuk masuk sebagai pengguna root, gunakan perintah di bawah ini

sudo su

atau

su

Edit file,

vi /etc/network/interfeces

Setelah perubahan, simpan file menggunakan

  1. Tekan Escuntuk mengubah mode
  2. :x untuk menyimpan dan keluar dari file

Itu saja

Sathish
sumber
0

pertanyaan ini telah dijawab sejak lama, tetapi jika muncul kembali di mesin pencari, tautan ini adalah lembar contekan vim yang bagus yang mungkin ingin Anda tandai jika Anda sering menggunakan vim.

Ngomong-ngomong, Anda dapat menggunakan :wquntuk menyimpan dan keluar file (Anda harus terlebih dahulu menekan tombol esc untuk keluar dari memasukkan atau mengganti mode dan kemudian tekan perintah) dan gunakan :q!untuk keluar tanpa menyimpan.

razieh babaee
sumber