Действительно ли возможно связать '2M' с единственным ключом w3m?

Android использует единственный процесс Зиготы что ветвления для запущения нового приложения. Эта оптимизация возможна, потому что все приложения Android запускаются в той же среде; существует очень мало, чтобы сделать (главным образом устанавливает пользователя и загружают код приложения) запускать приложение. Эта оптимизация является эффективной, потому что существует мало, чтобы сделать, тем более, что процессу Зиготы уже связали библиотеки в.

В системе Unix не встречены предположения, которые лежат в основе Зиготы. Каждый процесс запускается со своих собственных переменных среды, своих собственных открытых файлов, своих собственных пределов использования, своего собственного пользователя и групп, и т.д. Вы не можете передать все это имущество от одного процесса до другого (можно передать некоторых, но даже затем это означало бы дополнительное время запуска). Кроме того, существует широкий спектр различных библиотек, пользовавшихся различными приложениями; каждое приложение должно было бы загрузить свое собственное. Подобная Зиготе оптимизация не возможна в целом и не, во многих случаях, действительно полезна, даже когда это возможно.

Можно записать программу Java, это - демон. Это - что-то, чем необходимо управлять на основе приложения приложением. Можно подать заявку, запускаются как демон и ветвление, когда это получает новый запрос. Вам решать, что сделать при разветвлении.

2
15.12.2012, 01:22
2 ответа

вместо использованияextbrowser(в ~/.w3m/configs ). которые вы должны использовать странные горячие клавиши, которые трудно запомнить, что каждая из них делает 2M, 3M, 4M... и т. д. или 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"
keymap  sg      COMMAND "TAB_GOTO https://google.com; GOTO_LINE 6; NEXT_LINK; GOTO_LINK"
keymap  se      COMMAND "TAB_GOTO https://stackexchange.com; GOTO_LINE 7; NEXT_LINK; GOTO_LINK"
keymap  sw      COMMAND "TAB_GOTO https://en.m.wikipedia.org/wiki/Main_Page; GOTO_LINE 18; 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 -
1
28.08.2020, 04:08

Нет, это не возможно. Существует только единственная команда EXTERN, и она вызывает первый, второй или третий браузер в зависимости от предыдущего числового аргумента. W3m не имеет макро-средства: Вы не можете связать ключ к последовательности команд.

Вы могли использовать внешнее макро-средство: имейте ключ, отправляют 2M когда Вы находитесь в w3m. Это потребовало бы, чтобы макро-средство знало, когда Вы находитесь в w3m. Один способ сделать это должно всегда выполнять w3m (и ничто иное) на специальном экране или tmux конфигурации.

0
27.01.2020, 23:06
  • 1
    . Команда 'EXTERN' может взять аргументы? Например, 'ЭКСТЕРН 2' или что-то подобное? –  Jing 18.12.2012, 01:35
  • 2
    @Jing, К сожалению, я не думаю так. –  Gilles 'SO- stop being evil' 18.12.2012, 18:49

Теги

Похожие вопросы