누르면 첫 번째 외부 브라우저가 실행되고 M두 번째 브라우저가 실행됩니다. 내장 명령을 다른 키에 바인딩하는 것은 쉽지만, 두 번째 명령을 다른 키에 바인딩하는 것이 가능합니까?w3m
2MEXTERN
답변1
사용하는 대신외부 브라우저(~/.w3m/configs에서). 이상한 단축키를 사용해야 하고 각 단축키가 2M, 3M, 4M...etc 또는 2-Esc-Shift-M, 3-Esc-Shift-M, 4-Esc-Shift-M 등의 기능을 기억하기 어렵습니다. . 등. 합계도 9개로 제한됩니다.
키맵 파일($EDITOR ~/.w3m/keymap)
여기 몇 가지 예가 있어요.
# EXTERN_LINK = under cursor
# EXTERN = current page
# yank url to clipboard
keymap yy EXTERN_LINK 'tmux set-buffer'
keymap YY EXTERN 'tmux set-buffer'
keymap yx EXTERN_LINK 'printf %s | xsel -b'
keymap YX EXTERN 'printf %s | xsel -b'
# open url in gui browser
keymap xw EXTERN_LINK '$BROWSER'
keymap XW EXTERN '$BROWSER'
keymap xn EXTERN_LINK '$BROWSER_PRIVATE'
keymap XN EXTERN '$BROWSER_PRIVATE'
# macros for smart search
keymap sd COMMAND "TAB_GOTO https://duckduckgo.com/lite/; NEXT_LINK; GOTO_LINK; SUBMIT"
keymap sg COMMAND "TAB_GOTO https://google.com; GOTO_LINE 6; NEXT_LINK; GOTO_LINK; SUBMIT"
keymap sy COMMAND "TAB_GOTO https://yewtu.be; NEXT_LINK; GOTO_LINK"
keymap so COMMAND "TAB_GOTO https://search.yahoo.com; GOTO_LINE 19; NEXT_LINK; GOTO_LINK"
매크로를 사용하여 설정을 전환하세요.\N줄 번호를 숨기거나 표시합니다. 더 많은 선택$w3m - 표시 옵션
keymap \\\? COMMAND "HELP; SEARCH ^User-Defined; CENTER_V" # show user custom hotkeys binding
keymap \\\f COMMAND "HELP; SEARCH ^Input Line Editing Mode; CENTER_V" # show field hotkeys binding
keymap \\\c COMMAND "SET_OPTION color=toggle ; RESHAPE"
keymap \\\u COMMAND "SET_OPTION mark_all_pages=toggle ; RESHAPE" # Treat URL-like strings as links in all pages
keymap \\\l COMMAND "SET_OPTION display_link_number=toggle ; SET_OPTION show_lnum=toggle ; RESHAPE" # toggle hinting mode / line numbers
keymap \\\h COMMAND "SET_OPTION display_link_number=toggle ; RESHAPE" # toggle hinting mode
keymap \\\n COMMAND "SET_OPTION show_lnum=toggle ; RESHAPE" # toggle line numbers
keymap \\\b COMMAND "SET_OPTION display_borders=toggle ; RESHAPE" # toggle table borders
keymap \\\i COMMAND "SET_OPTION display_image=toggle ; RELOAD" # toggle image display
keymap \\\e COMMAND "SET_OPTION user_agent='' ; RELOAD" # empty user agent
keymap \\\A COMMAND "SET_OPTION user_agent='Opera/9.80 (S60; SymbOS; Opera Mobi/SYB-1107071606; U; en) Presto/2.8.149 Version/11.10' ; RELOAD"
단순한 한 줄보다 더 복잡하다면 스크립트를 작성할 수도 있습니다.
# yank page title
keymap \\\y EXTERN_LINK ~/.w3m/cgi-bin/yanktitle_cursorurl.cgi # yank title (cursor url)
예를 들어:$Editor~/.w3m/cgi-bin/yanktitle_cursorurl.cgi
#!/usr/bin/env sh
# DESC: yank page title to X11 clipboard and tmux clipboard
# DEPEND: w3m wget gawk (xsel or tmux)
# get url from w3m envoriment variables (e.g !env | less)
# URL="$W3M_URL" # current page url
URL="$W3M_CURRENT_LINK" # current link on cursor
# yank page title
TITLE=$(wget -qO- "$URL" | gawk -v IGNORECASE=1 -v RS='</title' 'RT{gsub(/.*<title[^>]*>/,"");print;exit}')
printf "%s" "$TITLE" | xsel -b
printf "%s" "$TITLE" | tmux load-buffer -
답변2
아니요, 불가능합니다. 앞의 숫자 인수를 기반으로 첫 번째, 두 번째 또는 세 번째 브라우저를 호출하는 EXTERN 명령은 하나만 있습니다. W3m에는 매크로 기능이 없습니다. 키 입력을 명령 시퀀스에 바인딩할 수 없습니다.
2M
외부 매크로 도구를 사용할 수 있습니다. w3m에 있을 때 키를 보냅니다. 이를 위해서는 w3m에 있을 때 매크로 도구가 이를 알아야 합니다. 한 가지 방법은 항상 전용 화면이나 tmux 구성에서 w3m을 실행하는 것입니다.