Apakah ada kasus di mana vi adalah satu-satunya pilihan?

22

Apakah ada skenario di mana visatu-satunya pilihan untuk membuat, mengedit, atau memodifikasi file di lingkungan Ubuntu?

Pertanyaan saya pada dasarnya adalah untuk benar-benar mengetahui apakah ada kasus seperti itu di mana saya akan dipaksa untuk menggunakannya vikarena itu akan menjadi satu-satunya pilihan yang tersedia dalam kasus tertentu di ekosistem Ubuntu.

Mungkinkah yang ada kasus tertentu di mana saya entah bagaimana tidak akan memiliki akses ke pilihan lain seperti nano, picoatau hanya mengirimkan informasi dengan alat-alat seperti cat, sed, teedan lebih?

Saya akan menganggap ini lebih dari sisi server atau cloud karena pada Desktop ada banyak lagi pilihan, tetapi dari siapa pun yang menggunakan terminal banyak saya bertanya:

Apakah ada kasus seperti itu?

Luis Alvarado
sumber
8
@Tim Sebenarnya visudobisa menggunakan editor apa saja. Karena konfigurasi defaultnya di Ubuntu menghargai variabel EDITORdan VISUALenvironment, Anda dapat menjalankan sudo env VISUAL=emacs visudoemacs atau bahkan gksudo env VISUAL=gedit visudountuk editor grafis seperti Gedit. ( sudo -Hatau sudo -idapat digunakan sebagai pengganti gksudo.) Saya menyarankan envcara ini karena VISUAL=emacs sudo visudotidak akan berfungsi ( sudomengatur ulang sebagian besar lingkungan) dan sudo -EH mungkin dianggap tidak disarankan.
Eliah Kagan
3
vi adalah satu-satunya pilihan ... ketika vi adalah satu-satunya editor yang diinstal yang Anda ketahui dan Anda tidak ingin menghabiskan waktu menginstal yang lain. vi adalah opsi terbaik ketika vi adalah editor yang Anda tahu / sukai di antara yang tersedia dan Anda tidak ingin menghabiskan waktu menginstal yang Anda sukai. Tidak pernah ada kasus di mana hanya satu alat yang dapat memecahkan masalah; mungkin ada saat-saat ketika pilihan dibatasi. Dan beberapa orang sebenarnya suka vi. (Bukan aku. Aku fanatik Emacs. Meskipun aku bisa mentolerir banyak editor.)
keshlam
3
cat? sed? Sangat? visebenarnya tidak begitu rumit, dan jika Anda benar-benar tidak dapat diganggu untuk mempelajarinya, Anda hanya perlu mengingat dua mode (mode Normal dan Insert). Anda menggerakkan kursor dengan panah (atau HJKL jika tidak tersedia), tekan "i" untuk mulai mengedit (masukkan mode). Setelah selesai, tekan "Esc" untuk kembali ke mode normal. Ketik ": wq" untuk menyimpan dan keluar (Tulis + Berhenti).
sleblanc
2
cukup sedot saja dan pelajari vi :) Tidak sesulit yang pertama kali muncul dan begitu Anda mengetahuinya, Anda tidak akan pernah membuang waktu mencari editor lain di sistem baru yang Anda gunakan.
JamesRyan

Jawaban:

32

Di dalam ekosistem Ubuntu , saya tidak berpikir kasus ini bahkan bisa ada , karena visetidaknya akan menjadi vim-tiny, yang sudah menjadi "nyata vim" jauh dari "nyata vi."

Dalam konteks sistem tertanam terbatas sumber daya , yang biasanya bukan Ubuntu, Anda mungkin hanya memiliki vitautan yang ternyata menjadi tautan busybox. Dan tidak ada ruang yang tersisa. Maka, viadalah satu-satunya pilihan.

Terlepas dari itu, saya pikir situasi di mana visatu-satunya pilihan tidak terlalu umum sama sekali hari ini, bahkan di luar dunia Linux .

Namun bisa dengan mudah menjadi situasi di mana vimerupakan satu-satunya pilihan Anda dapat merencanakan untuk , satu-satunya pilihan yang certaily akan ada di beberapa situasi masa depan - yang akan terjadi di dalam ruang server over-dingin pelanggan, paling mungkin.

Bayangkan Anda dipanggil oleh pelanggan:

Pelanggan: Saya perlu memperbaiki konfigurasi ini! Sekarang!! Saya tidak tahu caranya, tetapi saya bisa memberi tahu Anda di mana file konfigurasi itu. Bisakah kamu membantuku!?!

Anda: Oke, sistem seperti apa yang berjalan?

Pelanggan: Oh, ada di server foo, ahh ... ini berjalan ... tidak dapat mengingat, sesuatu dengan "ix" pada akhirnya , atau mayeb dengan "ux" ...

Tidak masalah, sekarang, Anda tahu akan ada vi!

Volker Siegel
sumber
1
Saya secara pribadi telah bekerja pada sejumlah sistem tertanam yang hanya berisi vi sebagai editor teks, saya percaya buildroot dan yocto keduanya memilikinya sebagai satu-satunya editor ketika menggunakan opsi konfigurasi minimal. Memang ini bukan masalah di ubuntu, tetapi jika Anda adalah pengembang yang disematkan ini bisa menjadi masalah nyata. Namun Anda selalu bisa karena OP mengatakan menggunakan alat berbasis pipa seperti sed, sort, grep dan semacamnya, namun ini bisa sangat menyakitkan.
Vality
The busybox kasus memang salah satu yang baik. Yang menyebalkan tentang itu adalah, saya tidak berpikir itu bahkan vi penuh (setidaknya itu bukan satu dekade yang lalu, dan saya berharap mereka belum membengkaknya, bahkan jika itu mengganggu).
hyde
1
busybox viadalah 4k baris:; curl -s https://gitorious.org/busybox/busybox/raw/1c7a58dfb82ea04c525e0c19f94f2d800dee99e3:editors/vi.c | wc)
Volker Siegel
17

Vi tidak pernah menjadi satu-satunya pilihan; Anda selalu dapat menggunakannya ed.

Evilsoup
sumber
8
Di Arch Linux, misalnya, edbukan bagian dari base.
muru
@muru FWIW vimjuga tidak.
Sparhawk
4
@Sparhawk viadalah.
muru
@uru Ah ya, tentu saja. Saya bingung sendiri.
Sparhawk
edhanya bagian dari standard^instalasi. Jika Anda minimalmenginstal, edtidak termasuk.
Oli
13

Nah, ada satu kasus di mana Anda membutuhkan vieditor, mari kita asumsikan:

  • tidak ada antarmuka grafis
  • Anda berada di beberapa *nixsistem aneh yang tidak dikenal
  • terminal Anda terlihat seperti ini:

masukkan deskripsi gambar di sini

  • Anda memiliki cukup banyak orang seperti ini:

masukkan deskripsi gambar di sini

Seperti yang Anda lihat tidak ada tombol angka . Dengan yang lama vi(dan maksud saya asli tradisionalvi , tidak vim, vim.tinyatau vim.basic) Anda dapat mengedit file dengan keyboard ini. Tanpa tombol panah ? Ya, ketika Anda berada di modus perintah Anda bergerak melalui file dengan h, j, kdan l, seperti pro. hditinggalkan, jturun, knaik dan lbenar.

kekacauan
sumber
5
Saya pikir jawaban ini sebenarnya tidak seburuk itu (keyboard seperti mesin tik bukan hal yang sama sekali tidak mungkin untuk ditemui), tetapi pada kenyataannya itu tidak berarti Anda perlu vikhususnya. Semua editor teks yang lebih lama memiliki kombinasi tombol "cadangan" yang memungkinkan Anda untuk bekerja tanpa tombol panah dll., Meskipun saya berani mengatakan itu viadalah satu-satunya editor di mana Anda tidak akan kehilangan tombol panah.
leftaroundabout
Agak di luar topik: Saya tidak mengerti mengapa Anda memerlukan keypad numerik untuk editor teks apa pun , dan tombol panah tidak berguna di Vim. : P
Doorknob
1
Hei, jangan diskon dulu bagus ed! Tidak perlu trik "visual" ini pada sistem seperti itu! Coba saja gunakan vim pada terminal kertas dan lihat bagaimana Anda mengelola ... Lebih serius lagi, mengetahui edberguna, itu adalah opsi yang layak ketika mengedit perlu dituliskan.
hyde
bagaimana Anda beralih ke mode perintah dengan keyboard itu (saya tidak melihat melarikan diri; apakah ada kombo tombol lain untuk itu?)
Foon
@Foon Ada tombol keluar =) Di sinilah seharusnya tab biasa. Di sebelah kiri tombol- Q .
kekacauan
6

Faktanya adalah bahwa, di banyak distribusi editor suka nanodan picotidak standar ketika paket lain, yaitu vim-tiny. Lihat di sini untuk daftar paket ubuntu-minimal, vim-tinyadalah satu-satunya editor . Menurut jawaban ini, tampaknya juga berlaku untuk server Ubuntu. Saya tahu ini adalah kasus untuk basis Debian, Fedora juga.

Yang sedang berkata, mengingat bahwa jika Anda memiliki nanopada sistem Anda, saya belum melihat kasus di mana Anda harus menggunakan visebagai gantinya, tetapi, bermain dari jawaban @ Volker, jika Anda bekerja untuk pelanggan dan tidak memiliki akses root? apt-get install nanotidak akan banyak membantu Anda (jika bahkan memiliki akses ke internet luar!).

Mitch
sumber
4

Ada sejumlah kasus di mana vi(dan maksud saya secara alami vim.tinykarena itulah yang kami kirimkan) dapat menjadi satu-satunya editor interaktif. Jika kita mengabaikan kupu-kupu dan sinar kosmik, ini sepertinya merupakan kesempatan yang paling mungkin terjadi:

  • Anda hanya menggunakan ubuntu-minimalpaket meta dasar. Ini tergantung pada vim-tiny tetapi tidak ada editor lain. Saat ini saya tidak dapat menemukan cara untuk menginstal Ubuntu tanpa standard^tugas tetapi Anda dapat menghapusnya setelah instalasi dengan:

    sudo apt-get remove $(apt-cache show standard^ | awk '/Package: / {print $2}')
    

    Saya memiliki pengalaman pribadi di mana saya diberikan gambar sistem tanpa standard^tugas diinstal. Jika saya tidak memiliki akses jaringan viakan menjadi satu-satunya pilihan saya.

  • Chroot ke lingkungan yang hanya dipetakan vimelalui

  • Secara manual nuking semua editor lain (dan menonaktifkan sarana untuk menginstalnya kembali)

  • Memecah shell secara manual untuk menghentikan editor yang dikenal kecuali vidiluncurkan.

Instalasi benar-minimal akan menjadi alasan yang paling mungkin, tetapi mereka cukup langka hari ini Beberapa perusahaan VPS dan cloud hosting menggunakannya (untuk menghemat ruang disk sebanyak yang lain) tetapi saya menyarankan agar mereka jelas bukan norma.

Oli
sumber
Jawaban yang luar biasa seperti biasa. Saya merasa sangat berpengetahuan.
Luis Alvarado
2

Dalam kasus di mana Anda tidak dapat menginstal emacs, atau dalam kasus di mana Anda perlu memodifikasi file konfigurasi untuk memungkinkan Anda menginstal emacs. :-p

Craig
sumber
Atau dalam kasus ketika Anda ingin menggunakan editor unggul yang lebih baik daripada emacs. ( cue flamewar ): P
Doorknob
3
Tentunya, jika Anda menggunakan Ubuntu maka Anda sudah memiliki sistem operasi, sehingga emacs akan menjadi redundan: v
evilsoup
Hei, comback yang bagus. :-p
Craig
2

Banyak (kebanyakan?) Instalasi Sibuk-Kotak hanya memiliki vi.

Ini tidak spesifik untuk Ubuntu, tetapi ini berlaku untuk banyak perangkat yang disematkan.

Nama palsu
sumber
2

Selalu ada kucing, kepala, ekor ... jadi saya tidak yakin ada sistem di mana Anda tidak memiliki alternatif lain, tetapi ada kemungkinan untuk menemukan sistem di mana tidak ada alternatif yang lebih baik bahkan jika Anda lebih suka emacs.

Contoh saya adalah sistem yang pernah saya kelola, yang sangat lambat (atau jalurnya lambat dan hilang), sehingga ketika menavigasi dengan kunci kursor, seringkali tiba-tiba beralih untuk memasukkan dan menyuntikkan sampah ke dalam file yang diedit, dan menggunakan HJKL untuk memindahkan adalah satu-satunya pilihan yang dapat diandalkan.

Edheldil
sumber
1
Dan tentu saja, kupu - kupu tua yang baik !
leftaroundabout
2

Inilah kasus di mana vim adalah satu-satunya pilihan dalam ekosistem Ubuntu: Ubuntu Snappytidak dilengkapi dengan editor teks selain vim-tiny. Mungkin di masa depan akan ada satu, tetapi tidak pada 2015-16. Jika Anda akan menggunakan Ubuntu Snappy melalui konsol serial atau ssh, Anda sebaiknya bersiap untuk menggunakannya vim.

Sergiy Kolodyazhnyy
sumber
0

Saya masuk ke suatu situasi di mana hanya linemode vi yang bekerja. Ada hubungannya dengan benar-benar mengacaukan definisi terminal. Pada dasarnya hanya vi in ​​linemode (ini berperilaku seperti vi normal jika Anda berpura-pura memiliki terminal 1 baris), ex, dan ed akan bekerja karena satu-satunya definisi terminal adalah "bodoh".

Joshua
sumber