smenu는 sed
편집 필터인 것처럼 선택 필터입니다.
이 도구는 표준 입력이나 파일에서 단어를 읽고 스크롤 창의 다양한 레이아웃으로 터미널 화면에 표시합니다. 키보드 및/또는 마우스를 사용하여 쉽게 이동할 수 있는 커서를 사용하면 하나 이상의 단어를 선택할 수 있습니다.
메뉴 실행 시작 및 종료 시 화면은 지워지지 않습니다. 커서 위치에 선택창이 표시되며, 이전 단말기 내용은 수정되거나 손실되지 않습니다.
최대한 사용하기 쉽게 만들려고 노력했습니다. 이는 terminfo
데이터베이스에서 관리되는 모든 터미널에서 작동해야 합니다.
UTF-8
인코딩이 지원됩니다. 이 지원에는 이중 폭 문자 및 확장 문자소 클러스터가 포함됩니다. 그러나 후자는 아직 실험적이며 WezTerm 또는 iTerm과 같은 적절한 터미널을 사용하면 훨씬 더 잘 작동합니다.
UTF-8
글리프의 인코딩도 표준 형식이어야 합니다. 이를 이 형식으로 넣으려고 노력하지 않기 때문입니다.
이 작은 프로그램에 대한 자세한 내용은 포함된 매뉴얼 페이지를 참조하십시오.
위키에는 smenu 의 일부 개념과 기능을 자세히 설명하는 스크린샷과 애니메이션이 포함되어 있습니다.
일부 Linux 배포판에서는 이미 smenu를 패키지로 제공하고 있습니다. 그렇지 않은 경우 smenu는 기능적인 terminfo
개발 플랫폼을 사용할 수 있는 모든 시스템에서 구축할 수 있습니다. 여기에는 내가 아는 모든 Unix 및 Unix 계열 시스템이 포함됩니다.
제공된 build.sh
스크립트를 사용하여 실행 파일을 빌드하세요. 이 스크립트는 GNU configure
스크립트와 동일한 인수를 사용하고 허용합니다. 이를 보려면 build.sh --help
입력하세요.
빌드 프로세스가 완료되면 적절한 권한을 사용하여 간단한 make install
수행합니다.
이 저장소에 대한 토론을 활성화했습니다.
문제를 보고하거나, 질문을 하거나, 기능 요청을 제기할 때 어디에 연락해야 할지 결정할 때 약간의 혼란이 있을 수 있다는 것을 알고 있으므로 이 섹션에서는 이에 맞춰 조정하는 데 도움을 드리고자 합니다.
다음과 같은 경우 문제를 제기해 주세요.
다음과 같은 경우 토론을 열어주세요:
이 프로그램은 대부분의 Unix에서 작동하지만 Linux를 사용하는 경우 쉘 프롬프트(여기: "$ "
)에 다음 줄을 입력해 보십시오.
$ R=$(grep Vm /proc/$$/상태 | smenu -n20 -W $':tn' -q -c -b -g -s /VmH) $ 에코 $R
이제 다음과 같은 내용이 명령을 기다리는 프로그램과 함께 표시되어야 합니다. (숫자는 내 것입니다. 여러분의 숫자는 다를 것입니다.)
VmPeak¦ 23840kB VmSize¦ 23836kB VmLck ¦ 0kB VmHWM ¦ 2936KB VmRSS ¦ 2936kB VmData¦ 1316KB VmStk ¦ 136kB VmExe ¦ 28KB VmLib ¦ 3956kB VmPTE ¦ 64kB VmSwap¦ 0kB
커서는 "VmHWM "
아래에 있어야 합니다.
커서를 " 136 kB"
로 이동하고
눌러 프로그램을 종료한 후 쉘 변수 R에는 " 136 kB"
포함되어야 합니다.
Unix 브랜드에 구애받지 않는 다음 명령은 UID가 100보다 낮은 Unix에 10개 이상의 계정이 있는 경우 스크롤 창을 제공합니다.
$ R=$(awk -F: '$3 < 100 {인쇄 $1,$3,$4,$NF}' /etc/passwd | s메뉴 -n10 -c) $ 에코 $R
광산에서는( LANG
및 LC_ALL
POSIX
로 설정됨) 다음과 같이 표시됩니다.
25 25 /bin/bash 에서 sys 0 3 /usr/bin/ksh + 빈 1 1 /bin/bash | 데몬 2 2 /bin/bash | FTP 40 49 /bin/bash | 게임 12 100 /bin/bash | LP 4 7 /bin/bash | 메일 8 12 /bin/false | 명명된 44 44 /bin/false | ntp 74 108 /bin/false v
스크롤 막대가 있는지 확인하세요.
.bashrc
에 다음을 추가하세요.
EOL=$'n' 바인딩 -x '"Cr": READLINE_LINE=$(fc -lr 1 | sed "s/[1-9][0-9]*..//" | smenu -Q -l -ac:7/4,b -W"$EOL") READLINE_POINT=${#READLINE_LINE}'
bash를 시작하거나 다시 시작하고 CTRL-R
(종료하려면 CTRL-C
또는 q
)을 누르세요. 즐기세요!
항목을 선택한 후 선택 창을 정리하도록 smenu 에 지시하기 위해 -d 매개변수를 추가할 수도 있습니다.
이러한 버전은 버그가 있을 수 있는 ctxopt 라는 새로운 옵션 시스템을 사용합니다. smenu 또는 ctxopt (https://github.com/p-gen/ctxopt)의 다음 릴리스에서 수정될 수 있도록 이를 보고해 주세요.
이 새로운 옵션 관리 시스템으로 인해 어떤 경우에는 명령줄 인수를 다시 정렬해야 할 수도 있습니다. 이로 인해 추가 작업이 발생하게 되어 죄송합니다.
페르시아어나 히브리어와 같이 오른쪽에서 왼쪽으로 쓰는 언어로 작성된 줄의 오른쪽 정렬은 준수되지 않습니다.
포함된 테스트 시스템은 상대적으로 초기 버전이므로 마음대로 사용하시기 바랍니다.
중요 테스트 시스템에는 일부 종속성이 있으므로 계속 진행하기 전에 test/README.rst
읽어 보십시오.
참고 tests
디렉터리에서 ./tests.sh
실행하여 모든 테스트를 실행하는 데 시간이 좀 걸립니다(현재 약 21분).
참고 *BSD와 같은 일부 시스템에서는 일부 테스트가 실패할 수 있습니다. 이는 posix/libc/... 구현의 차이점으로 설명할 수 있습니다. 이는 일부 특정 정규 표현식이나 일반적이지 않은 UTF-8
바이트 시퀀스가 사용될 때 특히 발생할 수 있습니다.
알 수 없는 이유로 테스트가 실패하면 해당 디렉터리 이름과 해당 .bad
파일을 보내주세요.
테스트에서 다루지 않는 버그에 직면한 경우 기존 또는 새 디렉토리의 tests
디렉토리에 새 테스트를 생성할 수 있습니다. tests/README.rst
파일을 읽고, 기존 테스트를 모델로 사용하고, .in
파일과 .tst
파일을 만들어서 생성된 파일과 함께 나에게 보내주세요.
기여는 환영하지만 먼저 문제에 대한 제안을 논의하거나 관리자와 논의하십시오.
자신이 선호하는 운영 체제나 배포판에 맞게 smenu를 패키징하는 데 시간을 쏟은 분들께 감사의 말씀을 전하고 싶습니다. 여기에서 해당 이름을 찾을 수 있습니다: https://repology.org/project/smenu/information