Saya bertanya-tanya apakah ada cara untuk menghitung simbol yang disorot di vim
(termasuk spasi putih)?
MEMPERBARUI
Ini menunjukkan jumlah baris jika pilihan saya ada di beberapa baris. Saya perlu jumlah simbol.
Kecuali saya kehilangan sesuatu, Vim sudah melakukan itu. Jika saya menyorot beberapa teks menggunakan mouse atau dengan mengetik v
dan menggerakkan kursor, saya melihat di bagian bawah layar
- VISUAL - 12
di mana angka di sebelah kanan adalah jumlah karakter yang disorot. Ini hanya berfungsi jika seleksi berada pada satu baris, jika tidak maka akan menunjukkan jumlah baris.
Anda juga dapat secara visual memilih beberapa wilayah teks dan jenis g Ctrl-Gyang akan menunjukkan jumlah baris, kata, dan byte yang dipilih.
set showcmd
ke Andavimrc
untuk mengaktifkannya.Vim membalik antara menampilkan jumlah karakter dan jumlah baris untuk teks yang divisualisasikan tergantung pada apa dan bagaimana Anda memvisualisasikan (vim 7.4 ditambal hingga September 2015)
Jika Anda memvisualisasikan lebih dari satu baris, itu hanya menampilkan jumlah baris
sumber
v
beralih dari jumlah karakter ke jumlah baris jika pilihan tersebut mencakup beberapa baris. Namung CTRL-G
melakukan pekerjaan dengan baik.Pertama, Anda menarik pilihan saat ini (ke buffer x)
Kemudian Anda menampilkan panjang buffer itu:
strlen(@x)
(The - VISUAL - ditampilkan di baris status mengaburkan ini, jadi kami harus menambahkan baris baru)
Sorot rentang visual sebelumnya:
gv
Ini tidak memperhitungkan apakah mode visual adalah mode baris, karakter, atau blok, tetapi cukup untuk sebagian besar kasus.
sumber
Saya melihat dari tangkapan layar bahwa Anda menjalankan di Windows, jadi jawaban ini mungkin tidak banyak membantu Anda. Tapi untuk orang lain ...
Fitur Vim yang kurang digunakan adalah membiarkan perintah eksternal melakukan pengangkatan berat.
Untuk kasus ini, jika Anda menggunakan sistem mirip UNIX, Anda dapat menggunakan
wc
perintah untuk melakukan itu.Cara paling sederhana adalah mengganti teks yang dipilih dengan output dari perintah, dengan mengetik (dengan teks yang dipilih):
(lalu tekan enter).
Ini akan ditampilkan di baris perintah Anda sebagai:
Setelah membaca info, Anda dapat membatalkan dengan
u
untuk kembali ke tempat Anda memulai.Catatan: Pemrosesan ini dilakukan hanya pada seluruh baris . Jika Anda ingin garis parsial, saya pikir @ garyjohn
g_CTRL-G
adalah taruhan terbaik Anda.Anda dapat menghindari keharusan membatalkan dengan menjalankan:
Ini "menulis" baris yang dipilih ke input standar perintah, dan output dari perintah akan ditampilkan dalam buffer sementara baru, meninggalkan yang asli tidak tersentuh. Lihat
:help :write_c
untuk info lebih lanjut.Catatan: Saya mendapat
:write_c
info dari: /programming/1237780/vim-execute-shell-command-without-filteringSekarang, secara lebih umum:
Contoh dengan
wc
ini cukup sederhana, tetapi Anda dapat membayangkan bagaimana ini merupakan pendekatan yang kuat. UNIX memiliki banyak perintah pemrosesan teks yang sudah tersedia, dan Anda dapat menggunakannya dengan mudah di Vim, tanpa harus menyentuh Vimscript (yech).Lebih jauh, setiap program commandline yang Anda tulis yang berhubungan dengan stdin / stdout sekarang tidak hanya menguntungkan Anda di terminal Anda, tetapi juga di dalam Vim.
Saya menemukan diri saya, misalnya, menjalankan
tidy
danjson-format
dari dalam vim untuk membuat file yang saya lihat lebih mudah dibaca.Anda dapat melakukan hal yang sama pada Windows, tetapi Windows tidak memiliki seperangkat perintah bawaan yang begitu banyak. Anda selalu dapat menginstal GNUWin32 atau serupa untuk mendapatkan manfaatnya.
sumber
Untuk cara terprogram dalam vimscript, ini bekerja untuk saya ketika seleksi dibatasi dalam satu baris:
(Menggunakan
virtcol(..)
bukannyacol(..)
, sehingga berfungsi seperti yang diharapkan saat:set ve=all
aktif.)sumber