Editor apa yang dapat saya gunakan sebagai alternatif vi / vim sederhana?

17

Saya pengguna Windows yang datang ke Bash Ubuntu berkat WSL . Sekarang saya perlu mengedit beberapa file dan saya sangat membenci Vi. Apakah saya hanya harus menghadapinya, atau ada alternatif yang lebih sederhana?

Fitur yang saya cari adalah:

  • Berbasis CLI
  • mudah digunakan (mengetik dan mengedit harus mirip dengan Notepad)
  • kemampuan pengeditan sederhana sudah cukup

Saya akan mencoba menguasai Vim, tetapi saya perlu mengedit cepat sekarang!

sebagomez
sumber
Ini masalah pendapat. Pemula menggunakan nano howtogeek.com/howto/42980/… . vim (vi ditingkatkan) memiliki sedikit kurva pembelajaran tetapi sangat kuat - Lihat linux.com/learn/vim-101-beginners-guide-vim atau panduan vim atau tutorial vim, vimtutor (termasuk dalam vim)
Panther
Harap dicatat bahwa pertanyaan ini mungkin ditutup karena cukup berdasarkan pendapat. Anda mungkin ingin menulis ulang agar sesuai dengan aturan situs (mis. Apa yang dapat saya gunakan sebagai alternatif untuk vim?)
Andrea Lazzarotto
3
Voting untuk menutup ini sebagai pertanyaan berbasis opini. Kata nasihat: mulai dengan nano, dan kemudian transisi ke vim dengan langkah-langkah kecil. Ini akan menghasilkan dalam jangka panjang karena vim pada sistem Linux pada dasarnya
Sergiy Kolodyazhnyy
1
Sebagai tindak lanjut dari komentar saya, judul saat ini masih bisa diperdebatkan dan bisa mengarah pada penutupan. Orang mungkin menganggap vim itu sendiri sebagai "baik", dan ini subjektif. Bolehkah saya menyarankan menggunakan kata "lebih mudah"? Juga menentukan beberapa fitur yang diinginkan dapat membantu mempersempit pertanyaan.
Andrea Lazzarotto
2
@Jos kita berbicara tentang WSL di mana menjalankan program GUI dapat dilakukan tetapi tidak sepele. Juga pertanyaannya tidak akan ada untuk editor GUI karena semuanya lebih mudah daripada vim.
Andrea Lazzarotto

Jawaban:

24

Jika Anda mencari editor alternatif, Anda tidak sendirian. Pada dasarnya hidup ini terlalu singkat untuk dipelajari vidan saya katakan ini menjadi pengembang perangkat lunak untuk mencari nafkah. Namun Anda harus belajar cara keluar karena itu merupakan masalah bagi satu dari 20k programmer . Juga melakukan beberapa operasi dasar append / insert mungkin layak dipelajari, karena pada beberapa server yang keras kepala Anda tidak akan menemukan editor lain.

Sekarang, jawaban atas pertanyaan Anda mungkin nano.

Jika Anda menjalankan beberapa skrip pembuatan otomatis, menggunakan gitatau menjalankan perintah lain, mereka mungkin terbuka vimtanpa Anda inginkan. Anda dapat mencegah ini dengan menjalankan yang berikut sebelum melanjutkan:

export EDITOR=nano
Andrea Lazzarotto
sumber
1
Terima kasih! poin tambahan untuk EDITORtip
sebagomez
3
"Pada dasarnya hidup ini terlalu singkat untuk dipelajari vi". Tidak perlu menghabiskan seluruh hidup, meskipun seseorang bisa jika mereka suka vim. Saya menghabiskan 2 jam menonton tutorial yang bagus di YouTube, dan terus berlatih dasar-dasar yang saya pelajari dari video. Sekarang 70% dari semua jawaban saya di Ask Ubuntu ditulis dalam vim.
Sergiy Kolodyazhnyy
7
Pada "hidup ini terlalu singkat", saya pikir esai ini memiliki poin bagus. Salah satu penghalang (buatan) terbesar dalam mempelajari Vim adalah premis keliru yang perlu segera Anda selami untuk menjadi pengguna "inti". Kamu tidak. Gunakan tombol panah. Gunakan pintasan GUI untuk menyalin / menempel. Nongkrong dalam mode sisipkan. Abaikan tab dan register dan bel dan peluit (untuk saat ini). Ini relatif cepat untuk mendapatkan fungsionalitas tingkat nano di Vim, dan Anda dapat secara perlahan menambahkan fitur-fitur canggih nanti, sesuai kebutuhan Anda.
RM
@RM pintas GUI?
Andrea Lazzarotto
1
@Sergiy vim masuk akal jika Anda ingin menggunakan fitur-fitur canggih. Jika saya menggunakan vim seperti saya menggunakan nano, saya hanya akan tetap menggunakan nano (sebenarnya, saya ... Saya menggunakan vim ketika saya berada di server yang saya tidak dapat menambahkan perangkat lunak, seperti mesin klien).
Andrea Lazzarotto
11

Ini masalah pendapat.

Pemula menggunakan nano .

vim ("vi ditingkatkan") memiliki sedikit kurva belajar tetapi sangat kuat. Lihat panduan pemula ini untuk vim atau panduan vim lainnya atau tutorial vim vimtutor(termasuk dalam vim).

Untuk saat ini saya sangat menyarankan nano

nano -B /path/to/file/to/edit

-B membuat cadangan

Perintah dikeluarkan dengan kunci kontrol dan terdaftar di bagian bawah jendela editor.

Ada panduan tentang penyorotan sintaks lihat: Bagaimana cara mengaktifkan penyorotan sintaks di nano?

nano

emacsadalah alternatif untuk keduanya vimdan nanodan memiliki banyak manfaat juga. emacslebih kompleks dari nano. Anda dapat melihat tur emac .

Hanya untuk kelengkapan, tema vim + seperti Zenburn bisa sangat membantu

Zenburn

Harimau kumbang
sumber
2
Tidak hanya pemula, pada dasarnya semua manusia yang tidak ingin memasuki perang vim vs emacs. : P
Andrea Lazzarotto
1
+1 Saya akan menggunakan nano juga, bahkan untuk pengguna lama vi terlihat seperti omong kosong lama
xavier_fakerat
Nah, agar adil, Anda dapat tema vim dan .vimrc berjalan jauh. vim dan emacs memiliki fitur-fitur canggih yang tidak tersedia di nano, tetapi itu sia-sia jika Anda tidak menggunakan fitur-fitur canggih. Untuk pengeditan dasar yang cepat, saya menggunakan nano meskipun secara keseluruhan saya adalah penggemar fanboi. kippura.org/zenburnpage
Panther
1
Belajar vi/vim. :) Ada di setiap perangkat nix. :) Dasar tidak sulit.
buron
3
"emacs lebih kompleks dari nano." : p ini bisa menjadi pernyataan tahun ini.
Daniel Jour
3

sebagai poweruser windows, setelah mencoba vimdan nanosaya menemukan bahwa saya memerlukan sesuatu di antaranya, dari segi kompleksitas. jadi saya mencoba menampar dan itu adalah hal yang saya cari.

gambar tamparan

slap adalah editor teks berbasis terminal yang mirip Sublime yang berusaha membuat pengeditan dari terminal lebih mudah.


instalasi:

curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh
Soorena
sumber
1
Anda lupa menyebutkan titik penjualan utama, dukungan mouse kelas satu (bahkan melalui koneksi SSH)
blueray
2

Pernahkah Anda merasa frustrasi karena editor teks Anda tidak melakukan apa yang Anda inginkan? Marah karena Anda tidak dapat mengingat ...

  • ... bagaimana cara mencari bantuan?
  • ... apa: wq artinya?
  • ... salah satu lisper kecil yang Anda baca sebagai mahasiswa?

Dunia kecil, berani menanti!

Sementara kami menganjurkan editor teks ringan favorit kami, izinkan saya merekomendasikan eXcellent, mungil, dan cepat xo(exofrills) .

Ini adalah file Python 3 tunggal, dan memiliki dukungan yang baik untuk penyorotan sintaksis melalui Pygments (walaupun tidak sempurna dengan non-Python):

masukkan deskripsi gambar di sini

Ini juga memiliki kombinasi tombol yang sangat sederhana dan berguna yang dapat dengan mudah dan mudah diubah sesuai keinginan Anda:

masukkan deskripsi gambar di sini

Fitur lainnya:

  • Kurang dari 850 baris kode dalam satu file!
  • Menyorot sintaks!
  • Pencocokan dan penggantian ekspresi reguler!
  • Caching riwayat penelusuran!
  • WTFPL berlisensi!
  • Sepenuhnya disesuaikan!
  • Mulai di lokasi non-asal!
  • Lompat di antara kata-kata dalam satu baris!
  • Langsung ke mana saja dalam file!
  • Penyisipan seluruh file!
  • Ramah pemula - mungkin Anda baru mengenal kata-kata!
  • Salin dan tempel teks!
  • Status garis dan kolom!
  • Hanya satu baris ruang pengeditan non-teks!
  • Baik menghemat & memuat!

Sumber Python3 ada di github , dan Anda dapat menginstalnya lebih mudah menggunakan:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills: teks Anda telah diedit ... tetapi Anda masih lapar.

Penafian: Saya sama sekali tidak berafiliasi dengan proyek exofrills.

kucing
sumber
1
Ini terlihat sangat rapi, +1 dari saya. Meskipun jumlah tanda seru itu mengganggu. : P
Andrea Lazzarotto
0

Walaupun saya tidak dapat menyangkal bahwa saya terlalu berjuang dengan vi pada awalnya, saya pikir argumen dapat dibuat bahwa vi sebenarnya sangat mudah dipelajari. (Ketika saya mulai menggunakan Unix pilihannya adalah vi atau emacs, jadi pada saat itu saya memilih ed, ed menjadi editor baris yang sangat sederhana, yang telah saya pelajari dari membaca buku teks Unix awal.) Saya menggunakan vi setiap hari, tetapi saya mungkin gunakan hanya sebagian kecil dari fitur-fiturnya.

Inilah argumen pertama untuk menggunakan vi: vi ada di semua sistem, menggunakan sangat sedikit sumber daya, dan dapat digunakan pada koneksi yang tidak stabil dan lambat, di mana editor lain mungkin gagal atau lambat dan tidak dapat digunakan. Atau dalam situasi di mana sistem rusak, jadi tombol panah tidak diartikan dengan benar (misalnya pengaturan terminfo yang buruk.) Jadi vi dapat digunakan untuk memperbaiki file konfigurasi yang mengarah ke masalah, tanpa terpengaruh oleh masalah.

Dan di sini adalah cara mempelajari subset vi yang berguna: Pertama: berhenti memikirkan vi sebagai "editor" terminal-GUI yang interaktif, dan melihatnya sebagai bahasa pemrograman untuk memanipulasi file teks. Pada awalnya "vi" berarti mode VIsual, dan vi memiliki counterpart nonvisual, yang merupakan tempat yang baik untuk memulai. Ketik ex pada prompt shell (saya akan menggunakan ¬ untuk merepresentasikan return):

$ ex¬
Entering Ex mode.  Type "visual" to go to Normal mode.
:

Sekarang tekan enter.

:¬
E749: empty buffer
:

Jadi, mari kita letakkan sesuatu di dalamnya. Ketik "a¬", dan ketikkan satu baris teks, lalu satu titik pada baris dengan sendirinya:

:a¬
Hello World¬
.¬
:

Itu adalah perintah append. Mudah, pendek, dan mnemonik. Tetapi akan menyenangkan untuk melihat apa yang ada di buffer:

:%p¬
Hello World
:

Itu adalah perintah cetak, p, jelas. % Adalah singkatan rentang garis. Setiap perintah dapat didahului dengan nomor baris atau rentang yang harus diterapkan oleh perintah. % berarti "semua baris". $ berarti baris terakhir, dan titik berarti baris saat ini. Angka berarti garis tertentu. Kisaran ditulis n, m dan angka dapat ditambahkan atau dikurangi, jadi +1, $ - 1 berarti dari baris berikutnya ke baris kedua-terakhir. Perintah yang terdiri dari hanya nomor baris menuju ke baris itu. Berikut adalah sebagian kecil dari perintah yang saya gunakan:

:1i¬
this text is inserted before line 1.¬
.¬
:

:w /tmp/filename¬
"/tmp/filename" [New] 2L, 49C written
:

w menulis semua (atau rentang yang dipilih) baris ke file.

:1d¬

menghapus baris 1.

:.s/Hello/Hello,/¬
Hello, World
:.s/$/!/¬
Hello, World!

Mengganti ekspresi reguler. Adalah baik untuk mengetahui ekspresi reguler!

:q¬
E37: No write since last change (add ! to override)

q berhenti. wq menulis dan berhenti. q! berhenti tanpa menulis, dan dengan nada yang sama, w! memaksa penulisan ke file jika memungkinkan.

Sekarang yang keren:

:p
Hello, World!
:.!tr a-z A-Z
:p
HELLO, WORLD!

! sebagai perintah menyaring baris ke perintah shell.

Dan akhirnya:

:vi¬

memasuki mode VISUAL. Jangan tertipu. Itu terlihat seperti editor, tetapi itu masih sebuah shell pemrograman interaktif. Anda hanya perlu melihat buffer setiap saat, dan beberapa perintah lagi. Dalam mode visual a: menampilkan prompt: dari mode ex. Tombol panah (jika berfungsi) bergerak, dan jika tidak, maka lakukan! h kiri, j bawah, k atas dan aku kanan. 0 berpindah ke karakter pertama dan ^ (pikirkan regex di sini!) Ke karakter non-spasi pertama di telepon. $ (regex lagi!) pindah ke akhir baris. Mengetik: 999¬ pergi ke baris 999, secara alami, seperti dalam mode ex.

"i" memasuki mode penyisipan, yang sekarang memasukkan karakter sebagai ganti garis, dan diakhiri dengan menekan pelarian alih-alih ".¬". "Saya" menyisipkan di awal, "a" setelah karakter di bawah kursor, dan "A" setelah akhir baris saat ini. Selalu tekan tombol escape saat selesai mengetik teks. "x" menghapus karakter di bawah kursor, dan "D" menghapus dari kursor ke akhir baris. "Y" menarik (salinan) baris saat ini, dan "P" menempelkannya kembali. ": pu" melakukan hal yang sama, tetapi dapat didahului dengan nomor baris. ": ya" adalah setara dengan "Y", dan sekali lagi, berguna untuk diterapkan ke rentang garis. Saya pikir ada tanda perintah juga, tetapi saya akui saya tidak mengingatnya. Saya tidak ketinggalan.

Di atas adalah apa yang saya gunakan, dan saya tahu saya mungkin bukan pengguna vi yang sangat "efisien". Di sisi lain, saya menggunakan fleksibilitas ex, misalnya untuk skrip mengedit file konfigurasi. Perlu mengubah nama host Anda foo.bar.com ke www.foobar.com di sejumlah file conf?

for file in conf/*
do (echo "%s/foo.bar.com/www.foobar.com/" ; echo "wq") |ex $file ; done

Yang ingin saya katakan adalah, bahwa saya pikir masalah dengan vi adalah orang-orang menganggapnya sebagai editor yang sulit. Yang diperlukan hanyalah mengubah sedikit pola pikir Anda, dan melihatnya sebagai bahasa pemrograman interaktif yang sangat sederhana namun juga sangat kuat. Begitu kuat sehingga bahkan dengan subset dari perintah yang tersedia, Anda dapat menggunakannya dengan sangat baik - tidak hanya sebagai editor tetapi sebagai alat umum, skrip yang terintegrasi dengan baik dengan seluruh Unix. Saya ragu nano akan melakukan semua ini - emacs ... mungkin.

LHP
sumber
3
Maaf tapi ... ini tidak menjawab pertanyaan. OP meminta alternatif untuk vim dan jawaban harus menyediakan itu.
Andrea Lazzarotto
1
Saya memuji pekerjaan yang Anda masukkan ke dalam jawaban ini, tetapi itu tidak benar-benar menjawab pertanyaan - tutorial dan pasang untuk vim tidak termasuk di sini sama sekali, tetapi itu memang milik di blog Anda.
kucing
Jawaban ini adalah persis mengapa begitu banyak orang meminta alternatif untuk viemac - semakin kita mengatakan mereka tidak nyaman untuk digunakan, semakin banyak orang yang bertobat yang bersikeras bahwa kita berusaha lebih keras untuk menggunakannya.
Shukri Adams
0

Jika Anda ingin Sublime berbasis terminal seperti editor teks dengan dukungan mouse, gunakan Micro , Slap atau Suplemon .

Namun, jika Anda mencari editor teks modal, tidak terlihat lagi dari Kakoune .

sinar biru
sumber