Saya suka menulis tutorial dan artikel untuk forum pemrograman yang sering saya kunjungi. Forum ini memiliki batas karakter per posting. Saya telah menggunakan Notepad ++ di masa lalu untuk menulis posting dan itu membuat jumlah karakter langsung di status bar. Saya mulai menggunakan gVim lebih banyak dan saya benar-benar tidak ingin kembali ke Notepad ++ pada saat ini, tetapi sangat berguna untuk memiliki jumlah karakter ini. Jika saya menghitung, saya biasanya menempelkan postingan ke Notepad ++ sehingga saya bisa melihat kapan saya sudah cukup banyak untuk mendapatkan batasnya.
Saya telah melihat saran yang :set ruler
akan membantu, tetapi ini hanya memberikan jumlah karakter melalui indeks kolom saat ini pada baris saat ini. Ini akan bagus jika saya tidak menggunakan istirahat paragraf, tapi saya yakin Anda akan setuju bahwa membaca beberapa ribu karakter dalam satu paragraf tidak nyaman.
Saya membaca bantuan dan berpikir itu rulerformat
akan berhasil, tetapi setelah melihat statusline
format yang digunakannya, saya tidak melihat apa pun yang memberikan jumlah karakter untuk buffer saat ini.
Saya telah melihat bahwa ada plugin yang menambahkan ini, tapi saya masih mencelupkan jari kaki saya ke gVim dan saya tidak yakin saya ingin memuat plugin acak sebelum saya mengerti apa yang mereka lakukan. Saya lebih suka menggunakan sesuatu bawaan untuk vim, tetapi jika tidak ada itu tidak ada.
Apa yang harus saya lakukan untuk mencapai tujuan saya? Jika melibatkan plugin, apakah Anda menggunakannya dan seberapa baik kerjanya?
g CTRL-G
Saya tidak tahu ini ada. Bagus!! [...] %
?menunjukkan, bahwa Anda bisa melakukan dry-a ganti ala
(yang kemudian melaporkan kembali jumlah karakter yang cocok) atau bahwa Anda menyukai
strlen()
teks yang dipilih secara visual:("adalah register yang tidak disebutkan namanya)
karena Anda dapat memanggil ekspresi di baris status Anda seperti
%{myfunc()}
itu mungkin merupakan titik awal yang baik. menghitung semua waktu bisa sedikit memakan waktu karena Anda harus memilih seluruh teks dan kemudian mencabutnya, tetapi mungkin menunjukkan jumlah byte dalam "-register ok untuk Anda sudah. jika Anda benar-benar ingin tahu nomornya karakter di buffer: cukup pilih SEMUA teks secara visual dalam buffer dan tarik, jadi solusinya adalah:yang memberi Anda jumlah karakter dalam "-register (yang identik dengan jumlah byte jika Anda memilih dan menarik buffer saat ini).
sumber
g<CTRL-g>
metode dalam jawaban yang diterima.Peningkatan untuk jawaban mrucci:
Anda dapat menggunakan
wc
di linux tanpa harus menyimpan file terlebih dahulu dengan mengarahkan:w
output perintah sebagai berikut:dan Anda dapat memetakannya ke sesuatu seperti yang disebutkan oleh mrucci.
sumber
Memberi anda
yang juga merupakan solusi yang baik untuk masalah Anda. langsung saja ke ujung buffer dengan Gdan nomor byte yang ditampilkan di statusline Anda adalah jumlah karakter (tentu saja tidak dengan karakter multi-byte). kembali ke tempat asalmu ctrlo.
sumber
set statusline+=\ %o\ %N
(yang menarik, itu tidak berfungsi untuk item mis. "T S") . Maka jika Anda melihat status tidak berubah, itu karena Anda harus mengeksekusiset laststatus=2
. Bagi saya itu menggantikan status transparan yang ada dengan yang baru, menjadi hitam pekat, dan hanya memiliki "byte count" item.Jika Anda terbiasa menggunakan: w untuk menyimpan file, setiap kali Anda melakukannya, status melaporkan kembali jumlah karakter yang ditulis. Sebagai contoh, pada akhir kalimat ini saya melakukan: w (ya saya menggunakan gvim untuk menulis catatan ini) dan dilaporkan: 245C ditulis.
sumber
Anda dapat menambahkan ekspresi untuk menampilkan bytecount buffer di baris status dengan:
Atau Anda dapat mengubah variabel opsi secara langsung untuk menghindari semua yang lolos:
sumber
...%{ line2byte(line(\"$\")+1))-1 }
agar itu menyertakan karakter baris terakhir dalam hitungan. Pendekatan ini tidak akan menghitung karakter multibyte dengan benar.Solusi yang saya gunakan sampai saya menerima jawaban mrucci:
Saya menemukan secara tidak sengaja bahwa ketika saya: w untuk menyimpan file, perintah menampilkan jumlah byte yang ditulis. Ini kurang lebih merupakan jumlah karakter, jadi sejauh ini sudah cukup dekat. Saya suka jawaban mrucci juga, mungkin lebih dari yang ini karena memiliki jumlah kata juga.
sumber
Jika Anda menyimpan salinan file teks Anda, cukup tulis teks Anda ke disk - jumlah karakter ditampilkan secara default.
Jika Anda tidak ingin menyimpan file, hanya menyimpan teks Anda ke
/dev/null
::w!/dev/null
.Anda juga dapat
wc
menghitung karakter Anda::%!wc -c
- tetapi jangan lupa untuk menekan Uuntuk mengembalikan teks Anda.Jika Anda sering membutuhkan ini, petakan saja perintah-perintah ini ke urutan kunci:
:map #wc :w!/dev/null^[
- perhatikan bahwa^[
harus dimasukkan sebagai Ctrl+ V Esc.Sebagai indikator pertama ukuran teks, cukup nyalakan nomor baris; mengakui: ini membutuhkan aritmatika mental ;-)
sumber
Setelah memiliki pertanyaan ini dan membaca jawabannya (terima kasih mrucci) saya menambahkan baris ini ke file inisialisasi .vimrc saya.
Saya membiarkannya vim: membantu pengguna untuk mencari tahu apa yang mereka lakukan.
Secara pribadi saya merasa berguna untuk memulai pemetaan Vim dengan; atau, karena saya jarang menggunakannya sebagai karakter pertama dari suatu perintah.
sumber