押すと、最初の外部ブラウザが起動し、M2番目のブラウザが起動します。組み込みコマンドを別のキーにバインドするのは簡単ですが、2番目のコマンドを別のキーにバインドすることは可能ですか?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"
単純な1行よりも複雑な場合は、スクリプトを書くこともできます。
# 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
いいえ、できません。前述の数値引数に基づいて、最初、2番目、または3番目のブラウザを呼び出すEXTERNコマンドは1つだけです。 W3mにはマクロ機能はありません。キーストロークをコマンドシーケンスにバインドできません。
2M
外部マクロツールを使用できます。 w3mにいるときにキーを送ります。これを行うには、w3mにいるときにマクロツールがこれを知る必要があります。 1つの方法は、常に専用画面またはtmux設定でw3mを実行することです。