smenu adalah filter pilihan seperti sed
adalah filter pengeditan.
Alat ini membaca kata-kata dari input standar atau dari file, dan menyajikannya ke layar terminal dalam tata letak berbeda di jendela bergulir. Kursor, yang mudah dipindahkan menggunakan keyboard dan/atau mouse , memungkinkan untuk memilih satu kata atau lebih.
Perhatikan bahwa layar tidak dibersihkan pada awal dan akhir eksekusi smenu . Jendela pemilihan ditampilkan pada posisi kursor, dan konten terminal sebelumnya tidak diubah atau hilang.
Saya telah mencoba membuatnya semudah mungkin untuk digunakan. Ini harus bekerja pada semua terminal yang dikelola dalam database terminfo
.
Pengkodean UTF-8
didukung. Dukungan ini mencakup karakter berukuran ganda dan cluster grafem yang diperluas. Namun yang terakhir ini masih bersifat eksperimental, dan bekerja lebih baik jika terminal yang sesuai seperti WezTerm atau iTerm digunakan.
Pengkodean mesin terbang UTF-8
juga harus dalam bentuk kanonik, karena tidak ada upaya yang dilakukan untuk memasukkannya ke dalam bentuk ini.
Silakan merujuk ke halaman manual yang disertakan untuk mengetahui lebih lanjut tentang program kecil ini.
Wiki berisi tangkapan layar dan animasi yang merinci beberapa konsep dan fitur smenu .
Beberapa distribusi Linux sudah menyediakan smenu sebagai sebuah paket, jika tidak, smenu dapat dibangun pada sistem apa pun di mana platform pengembangan terminfo
yang fungsional tersedia. Ini mencakup semua sistem mirip Unix dan Unix yang saya ketahui.
Silakan gunakan skrip build.sh
yang disediakan untuk membuat file yang dapat dieksekusi. Skrip ini menggunakan dan menerima argumen yang sama dengan skrip configure
GNU, ketik build.sh --help
untuk melihatnya.
Setelah proses pembangunan selesai, make install
sederhana dengan hak istimewa yang sesuai akan menyelesaikannya.
Saya telah mengaktifkan diskusi di repositori ini.
Saya menyadari mungkin ada kebingungan saat memutuskan di mana Anda harus berkomunikasi saat melaporkan masalah, mengajukan pertanyaan, atau mengajukan permintaan fitur, jadi bagian ini bertujuan untuk membantu kami menyelaraskan hal tersebut.
Silakan ajukan masalah jika:
Silakan buka diskusi jika:
Program ini seharusnya bekerja pada sebagian besar Unix tetapi jika Anda menggunakan Linux, cobalah mengetikkan baris berikut pada prompt shell (di sini: "$ "
):
$ R=$(grep Vm /proc/$$/status | menu -n20 -W $':tn' -q -c -b -g -s /VmH) $ gema $R
Sesuatu seperti ini sekarang akan ditampilkan dengan program menunggu perintah: (nomor milik saya, nomor Anda akan berbeda)
VmPeak¦ 23840 kB Ukuran Vm¦ 23836 kB VmLck ¦ 0 kB VmHWM ¦ 2936 kB VmRSS ¦ 2936 kB VmData¦ 1316 kB VmStk ¦ 136 kB VmExe ¦ 28 kB VmLib ¦ 3956 kB VmPTE ¦ 64 kB VmSwap¦ 0 kB
Kursor harus berada di bawah "VmHWM "
.
Setelah memindahkan kursor ke " 136 kB"
dan mengakhiri program dengan
, variabel shell R harus berisi: " 136 kB"
.
Perintah berikut, yang merupakan agnostik merek Unix, akan memberi Anda jendela bergulir jika Anda memiliki lebih dari 10 akun di Unix dengan UID lebih rendah dari 100:
$ R=$(awk -F: '$3 < 100 {cetak $1,$3,$4,$NF}' /etc/passwd | menu -n10 -c) $ gema $R
Di milik saya ( LANG
dan LC_ALL
disetel ke POSIX
) ini menampilkan:
di 25 25 /bin/bash sys 0 3 /usr/bin/ksh + bin 1 1 /bin/bash | daemon 2 2 /bin/bash | ftp 40 49 /bin/bash | permainan 12 100 /bin/bash | lp 4 7 /bin/bash | surat 8 12 /bin/false | bernama 44 44 /bin/false | ntp 74 108 /bin/false v
Perhatikan keberadaan bilah gulir.
Cukup tambahkan yang berikut ini di .bashrc
Anda
EOL=$'n' ikat -x '"Cr": READLINE_LINE=$(fc -lr 1 | sed "s/[1-9][0-9]*..//" | menu -Q -l -ac:7/4,b -W"$EOL") READLINE_POINT=${#READLINE_LINE}'
Luncurkan atau luncurkan kembali bash dan tekan CTRL-R
( CTRL-C
atau q
untuk keluar), selamat menikmati!
Anda juga dapat menambahkan parameter -d untuk memerintahkan smenu membersihkan jendela pilihan setelah memilih entri.
Versi ini menggunakan sistem opsi baru bernama ctxopt yang mungkin mengandung bug. Silakan laporkan agar dapat diperbaiki pada rilis smenu atau ctxopt berikutnya (https://github.com/p-gen/ctxopt).
Argumen baris perintah mungkin juga perlu diatur ulang dalam beberapa kasus karena sistem manajemen opsi baru ini. Maaf atas kerja ekstra yang mungkin diperlukan.
Garis rata kanan yang ditulis dalam bahasa kanan ke kiri, seperti Farsi atau Ibrani, tidak dihormati.
Sistem pengujian yang disertakan masih relatif muda, mohon bersabar.
PENTING sistem pengujian memiliki beberapa ketergantungan, harap baca test/README.rst
sebelum melangkah lebih jauh.
CATATAN menjalankan semua tes dengan menjalankan ./tests.sh
di direktori tests
akan memakan waktu (sekitar 21 menit untuk saat ini).
CATATAN pada beberapa sistem seperti *BSD beberapa pengujian mungkin gagal. Hal ini dapat dijelaskan oleh perbedaan implementasi posix/libc/.... Hal ini terutama dapat terjadi ketika beberapa ekspresi reguler tertentu atau rangkaian byte UTF-8
yang tidak umum digunakan.
Jika pengujian gagal karena alasan yang tidak diketahui, kirimkan saya nama direktorinya dan file .bad
yang sesuai.
Jika Anda terkena bug yang tidak tercakup dalam tes, maka Anda dapat membuat tes baru di direktori tests
di direktori yang sudah ada atau baru: baca file tests/README.rst
, gunakan tes yang ada sebagai model, buat file .in
file dan file .tst
dan kirimkan kepada saya serta file yang dihasilkan.
Kontribusi dipersilahkan, tetapi diskusikan proposal Anda dalam suatu terbitan terlebih dahulu, atau dengan pengelola.
Saya ingin mengucapkan terima kasih kepada mereka yang meluangkan waktu untuk mengemas smenu untuk sistem operasi atau distribusi pilihan mereka. Anda akan menemukan nama mereka di sini: https://repology.org/project/smenu/information