Bagaimana cara menutup vim dari baris perintah?

46

Saya tahu ini lebih merupakan pertanyaan umum Linux tetapi tidak ada. Jadi ketika saya memasukkan program seperti vim pada prompt perintah, ia menampilkan semua teks dalam file dan saya dapat mengeditnya dll. Tapi saya tidak tahu bagaimana cara menutup atau menyimpan file dan kembali ke command prompt tanpa membunuh proses. Bantuan apa pun dihargai.

Ayo makan siang
sumber

Jawaban:

72

Dalam vim ada 3 mode berbeda:

  • Sisipkan - memungkinkan pengetikan dan pengeditan seperti biasa
  • Visual - digunakan untuk memilih salin / tempel dll.
  • Normal - digunakan untuk perintah

Untuk kembali ke mode Normal, Anda selalu dapat menekan esc.

Setelah Anda berada dalam mode Normal Tekan :untuk memulai perintah Anda (Anda akan melihatnya muncul di kiri bawah). Perintah-perintah berikut ini terkait dengan quiting vim:

  • :q - berhenti jika tidak ada perubahan yang dilakukan
  • :q! - berhenti dan hancurkan perubahan yang dibuat
  • :wq - tulis perubahan (simpan) dan berhenti
  • :x- Mirip dengan :wq, hanya menulis file jika ada perubahan, lalu berhenti
jondavidjohn
sumber
4
dan :xmerupakan jalan pintas untuk:wq
Ward Muylaert
2
Anda baru saja lupa mode "normal". Wow. Sebenarnya mode()fungsi dalam vim dapat mengembalikan 18 nilai yang berbeda.
Benoit
Sebagaimana disinggung oleh Benoit, jawaban ini membingungkan menggunakan istilah "mode perintah" untuk merujuk pada apa yang disebut dokumentasi vim "mode normal". Dokumen vim menganggap mode perintah sebagai apa yang Anda masukkan dengan menekan :dalam mode normal. Jika Anda menekan esc, Anda kembali ke mode normal. -1 karena menyesatkan orang yang mencoba mempelajari terminologi standar (dan karenanya dapat memahami sistem bantuan).
intuited
6
@intuited Siapa pun dapat menyarankan suntingan, yang mungkin akan lebih bermanfaat dalam jangka panjang daripada suara turun dan saran bagus yang terkubur dalam komentar.
Michael Martin-Smucker
Terima kasih atas informasinya, itu juga harus ditampilkan di suatu tempat di VIM sehingga orang bisa tahu ... itu sangat konyol untuk mencarinya di internet.
shridutt kothari
14

Pertama, tekan escapetombol. 1

Kemudian ketik saja ZZ(itu dua huruf kapital Z berturut-turut).
Atau, ketik :x. Entah akan menyimpan suntingan dan pergi.
Anda juga bisa menggunakan:wq

Bergantian, Anda dapat mengetik :q (alias, " berhenti, tolong ") Ini akan keluar hanya jika Anda belum melakukan pengeditan.

Jika Anda telah mengedit, dan Anda ingin membuangnya dan pergi, ketikkan :q!(alias " berhenti, sial !")

1 : Ini memastikan Anda berada dalam mode "perintah". Yang Anda inginkan untuk mengetik perintah, seperti yang dibutuhkan untuk keluar.

belacqua
sumber
4

Banyak ketidaknyamanan kami, tidak ada metode umum untuk keluar dari program baris perintah seperti ada tombol "X" untuk program grafis.

Banyak program baris perintah mengikuti tema menggunakan Q(misalnya mandan top) atau Ctrl+ C(misalnya pingdan watch) untuk keluar, tetapi ini sangat bervariasi, terutama di antara editor teks:

  • Vim khususnya menggunakan kombinasi yang tidak jelas pada waktu :q!itu Enter, biasanya didahului oleh beberapa penekanan Escuntuk ukuran yang baik.
  • Emacs , permata lain, lebih suka Ctrl+ Xdiikuti Ctrl+ C.

Editor seperti ini adalah jebakan untuk yang belum berpengalaman. Preferensi dan rekomendasi pribadi saya adalah, ketika dipaksa untuk mengedit teks pada command-line, sebagai gantinya gunakan Joe's Own Editor (JOE) yang lebih jelas .

ændrük
sumber
4
Saya sebenarnya berpendapat bahwa itu nanoadalah editor teks konsol self-explanatory yang jauh lebih universal.
jondavidjohn
@jondavidjohn Pertentangan Anda diperdebatkan. Saya setuju bahwa nano tidak diragukan lagi lebih universal, dan saya tidak mengklaim bahwa itu kurang jelas dari JOE. Preferensi saya untuk JOE adalah karena set fitur yang diperluas , dan rekomendasi saya untuk pengguna yang tidak berpengalaman dipengaruhi oleh seluk-beluk seperti penggunaan istilah Save in place dari WriteOut kuno .
ændrük
Secara umum Anda dapat menggunakan ^ Z untuk menunda proses. Kemudian Anda dapat membunuhnya, mengabaikannya, meletakkannya di latar belakang, atau membawanya kembali. (bunuh% 1 atau bunuh% x, bg, fg). Bagaimanapun, ada beberapa kesatuan kontrol kerja.
belacqua
3

Bersamaan dengan jawaban jondavidjohn, berikut adalah dua tautan yang memiliki informasi yang sangat diperlukan tentang penggunaan vim.

  1. Ini adalah grafik keyboard yang menunjukkan kepada Anda apa yang dilakukan masing-masing tombol tergantung pada apakah Anda dalam mode edit, mode perintah, atau mode visual:

    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

  2. Ini adalah tutorial vim terbaik yang pernah saya kerjakan. Itu percakapan dan mudah dimengerti, yang karena itu IRC / format pesan instan.

    http://www.vi-improved.org/tutorial.php

Akhirnya, ada beberapa seperti aendruk yang tidak ingin menggunakan editor teks baris perintah lanjutan. Vim khususnya memiliki kurva belajar yang curam, dan benar-benar membutuhkan upaya awal untuk membiasakan diri. Tapi ini sangat cepat, dan sangat kuat. Jika Anda memiliki minat pada linux di luar penggunaan desktop dasar, ada baiknya menginvestasikan waktu mempelajari editor teks baris perintah yang layak seperti Vim atau Emacs. Jika Anda hanya perlu mengedit beberapa teks dan tidak terlalu peduli, cobalah mengetik gedit filename.txt. Ini akan meluncurkan program grafis yang sudah dikenal, seperti Notepad dari Windows.

djeikyb
sumber
@djeikyb: Saya menghargai Anda membuat perbedaan antara penggunaan desktop dasar dan pengeditan teks baris perintah lanjutan. Kekuatan Ubuntu atas distribusi Linux lainnya adalah kemampuannya untuk membuat desktop Linux dapat diakses oleh pengguna komputer sehari-hari, yang menurut pendapatnya sekarang semakin diselewengkan kemewahan unik karena tidak pernah perlu tahu seperti apa editor seperti Vim.
ændrük
... Dengan kebebasan khusus ini, saya membuat keputusan untuk bekerja setinggi di atas metode baris perintah Linux tradisional karena saya memiliki kesabaran selama penggunaan komputer sehari-hari. Saya berupaya memanfaatkan hanya alat sederhana dan mudah diakses karena saya sanggup melakukannya . Akan tidak akurat untuk mengatakan bahwa saya tidak suka editor teks baris perintah. Sebaliknya, saya menyukai Vim dengan plugin VimOutliner-nya, dan saya berhutang budi padanya karena pengaruhnya terhadap proyek Vimperator / Pentadactyl.
ændrük
... Namun, saya melihat penggunaan pribadi alat-alat ini sebagai penyimpangan dari penggunaan komputer pada umumnya. Saya berpendapat bahwa ini akan menjadi perkembangan yang sehat bagi komunitas Ubuntu untuk kurang menyarankan kepada pendatang baru bahwa penggunaan biasa alat canggih dengan kurva belajar yang curam adalah norma di antara pengguna sehari-hari.
ændrük
@ Letseatlunch, jika tujuan Anda adalah untuk menjadi mahir di Vim, maka dengan segala cara saya mendorong Anda untuk terus mengejar Anda untuk itu. Saya hanya bermaksud mengomunikasikan bahwa, sementara, yang penting, Ubuntu menawarkan banyak alat canggih yang sama sekali tidak dimiliki sistem operasi lain, belajar menggunakannya tidak boleh menjadi persyaratan untuk menggunakan Ubuntu.
ændrük
Klarifikasi hebat! Saya akan mengedit jawaban saya untuk mencerminkan hal ini dengan lebih baik. Juga, saya secara khusus merekomendasikan gedit lebih dari nano karena gedit adalah tingkat yang lebih tinggi dengan gui yang akrab, dan karena nano pada awalnya membingungkan bagi saya (apa arti simbol caret ?? bagaimana saya berhenti ?? bagaimana cara saya menyimpan ??) . Yang lucu sekarang, mengingat vim adalah editor pilihan saya.
djeikyb
2

jika Esc :q!tidak bekerja,

coba pertama Ctrl+ q(untuk membuka layar yang terkunci dengan Ctrl+ s)

lalu coba lagi Esc :q!(untuk berhenti tanpa menyimpan) atau Esc :wq(untuk menyimpan dan keluar)

Gael P
sumber
0

Ingin keluar tanpa menyimpan:

  1. Memukul ESC
  2. Memukul ZQ

Keluar dengan menyimpan:

  1. Memukul ESC
  2. Memukul ZZ
Zoltan
sumber