w3mのシングルキーに「2M」をバインドできますか?

w3mのシングルキーに「2M」をバインドできますか?

押すと、最初の外部ブラウザが起動し、M2番目のブラウザが起動します。組み込みコマンドを別のキーにバインドするのは簡単ですが、2番目のコマンドを別のキーにバインドすることは可能ですか?w3m2MEXTERN

ベストアンサー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 -

おすすめ記事