ex
adalah versi baris perintah untuk vi
, dan lebih mudah digunakan dalam skrip.
ex $yourfile <<EOEX
:%s/$string_to_replace/$string_to_replace_it_with/g
:x
EOEX
Anda bertanya bagaimana cara menulis "sesuatu" ke dalam file teks melalui vim dan belum ada jawaban yang membahasnya.
Untuk menyisipkan teks:
ex $yourfile <<EOEX
:i
my text to insert
.
:x
EOEX
:i
memasuki mode penyisipan. Semua baris berikut disisipkan teks hingga .
terlihat muncul dengan sendirinya di barisnya sendiri.
Berikut ini cara mencari dan menyisipkan juga. Anda dapat melakukan sesuatu seperti:
ex $yourfile <<EOEX
:/my search query\zs
:a
my text to insert
.
:x
EOEX
Ini akan menemukan pilihan pertama yang cocok dengan regex yang ditentukan oleh :/
, letakkan kursor di lokasi yang ditentukan oleh \zs
, dan masuk ke mode penyisipan setelah kursor.
Anda dapat memindahkan \zs
untuk mencapai hasil yang berbeda. Misalnya:
ex $yourfile <<EOEX
:/start of match \zs end of match
:a
my text to insert
.
:x
EOEX
Ini akan mengubah kejadian pertama dari "awal pertandingan akhir pertandingan" menjadi "awal pertandingan teks saya untuk menyisipkan akhir pertandingan".
Jika Anda ingin mengizinkan jumlah ruang putih apa pun dalam pencarian Anda di antara kata kunci, gunakan \_s*
. Misalnya, mencari fungsi yang menghasilkan 0::/\_s*return\_s*0}
Jika Anda ingin melihat pekerjaan yang dilakukan di dalam vim atau gvim, Anda dapat menggunakan --remote-send
gvim --servername SHELL_DRIVER
bashpromt# cat mybash.sh
#!/bin/bash
echo "about to open $1"
gvim --servername SHELL_DRIVER $1 #I need to use vim application to open a file
#now write something into file.txt and close it
gvim --servername SHELL_DRIVER --remote-send '<ESC>i something to the file<ESC>:wq<CR>'
echo "done."
Ini akan lambat tetapi akan melakukan apa yang Anda inginkan.
Pertama kami membuka gvim di mana kami dapat membuka semua file kami (untuk efisiensi)
Dengan baris gvim pertama kami membuka file di gvim yang sebelumnya dibuka.
Pada baris gvim kedua kami mengirimkan perintah ke instance gvim yang dibuka sebelumnya (dengan file yang diinginkan masih terbuka).
Perintahnya adalah sebagai berikut:
<ESC>
- keluar dari mode apa pun yang mungkin digunakan gvim
i something to the file
- masuk ke mode penyisipan dan ketik "sesuatu ke file"
<ESC>
- keluar dari mode penyisipan
:wq
- tulis file dan keluar dari vim
Vim memiliki beberapa opsi:
-c
=> berikan perintah ex. Contoh:vim myfile.txt -c 'wq'
untuk memaksa baris terakhir file diakhiri dengan baris baru (kecualibinary
diatur dalam beberapa cara oleh skrip)-s
=> mainkan scriptout yang direkam dengan-W
. Misalnya, jika file Anda berisiZZ
, laluvim myfile.txt -s the_file_containing_ZZ
akan melakukan hal yang sama seperti sebelumnya.
Perhatikan juga bahwa, dipanggil sebagai ex
, vim akan mulai dalam mode ex; Anda dapat mencoba ex my_file.txt <<< wq