Firefox 将堆栈溢出与Vim集成
我最近开始在这里做复习任务(编辑第一篇文章/迟交的答案等)Firefox 将堆栈溢出与Vim集成,firefox,vim,Firefox,Vim,我最近开始在这里做复习任务(编辑第一篇文章/迟交的答案等) 起初,我试图从Firefox本身进行编辑 然后我开始复制到Vim并在那里进行格式化 不久,我发现了Firefox用于编辑多行文本字段的插件 因此,现在我正试图找到下一步,它将消除所有这些鼠标点击(编辑/提交等),以便仅在Vim上完成这项工作。Firefox中当前的界面(只需单击一下,您就可以看到下一篇文章)似乎完全可以集成到Vim中,所以我想知道是否/如何实现这一点 如果没有,您有哪些好的做法?好的,这里有一种方法: 安装Firef
- 起初,我试图从Firefox本身进行编辑
- 然后我开始复制到Vim并在那里进行格式化
- 不久,我发现了Firefox用于编辑多行文本字段的插件
如果没有,您有哪些好的做法?好的,这里有一种方法:
另一种方法是切换到终端并使用w3m。很容易将其配置为使用vim作为编辑器。但是,如果没有JavaScript,使用stackoverflow就不那么容易。特别是由于Stack Overflow等现代web应用程序的用户界面越来越丰富(以及底层JavaScript要求),我建议不要离开浏览器,尤其是因为实现了基于Vim的客户端(尽管可以使用curl、wget等工具,甚至可以使用可用的库,如)这是一项艰巨的工作
我发现使用您提到的Firefox插件已经相当有效了(后来我转到了Vimperator fork Pentadactyl),以及一个单独的GVIM实例,特别是如果您简化了它的话。我在一篇文章中描述了如何为堆栈溢出文本区域自动设置
标记文件类型。我刚刚开始尝试w3m在终端中浏览。您可以将所有的键绑定更改为类似vim的(对于特定于web的内容,我在Vimium中复制了绑定),并直接使用vim编辑网站上的文本字段。我只使用了一天,我还不知道如何处理“你是机器人吗”的检查……但这似乎很好地弥补了在vim中编码和谷歌+复制并将内容粘贴回vim之间的差距
我已经设置好了,所以当我在w3m中按v键时,它会在vim中打开页面,我设置vim以立即将文件保存为/tmp/w3m_scratch并退出到w3m。然后我转到我正在编码的vim实例,并使用另一个映射将水平拆分与/tmp/w3m_scratch文件(即我感兴趣的网页)切换。这使我能够快速将页面上的所有信息输入到我正在编写代码的同一个vim实例中,并可以使用vim的所有功能将stackoverflow(或其他网站)的文本集成到我的工作中:
function! WriteW3MToScratch()
" only if the file matches this highly specific reg exp will we do anything
"(e.g. a file that looks like: .w3m/w3mtmp7352-3)
if match(@%, "\.w3m/w3mtmp\\d\\+-\\d") != -1
:silent! wq! /tmp/w3m_scratch
endif
endfunction
function! ToggleW3M()
if bufexists("/tmp/w3m_scratch")
:bwipe! /tmp/w3m_scratch
else
:silent! split /tmp/w3m_scratch
endif
endfunction
" anytime we read in a buffer, if it came from w3m then write to scratch
autocmd BufReadPost * :call WriteW3MToScratch()
" open/close horizontal split containing w3m_scratch
nnoremap <leader>w :call ToggleW3M()<cr>
我曾经使用过VimOperator
,“为页面中的所有链接编号”对我来说并不方便。我更希望使用类似于:FetchNewPost()
或:UpdateCurrentPost()
的函数。
# w3m keymap file with Vim key bindings
# by Felipe Saa (https://github.com/felipesaa/A-vim-like-firefox-like-configuration-for-w3m)
# adapted by Matthew Bennett
#
# Ctrl : C-, ^
# Escape : ESC-, M-, ^[
# Space : SPC, ' '
# Tab : TAB, ^i, ^I
# Shift+Tab : ^[[Z
# Delete : DEL, ^?
# Up : UP, ^[[A
# Down : DOWN, ^[[B
# Right : RIGHT, ^[[C
# Left : LEFT, ^[[D
# Re Pag : M-[5~
# Av Pag : M-[6~
# Enter : C-j RET(pendant confirm)
#-custom map commands..........................................................
# switch the color of links for light/dark colourscheme
keymap SPCd COMMAND "SET_OPTION anchor_color=yellow"
keymap SPCl COMMAND "SET_OPTION anchor_color=blue"
# skip past all the cruft on the stack sites to where the question is asked
keymap st COMMAND "WHEREIS Ask\ Question; CENTER_V; NEXT_HALF_PAGE"
#-scrolling....................................................................
keymap C-y DOWN
keymap C-e UP
keymap gg BEGIN
keymap G END
keymap C-d NEXT_HALF_PAGE
keymap C-u PREV_HALF_PAGE
keymap C-f COMMAND "NEXT_HALF_PAGE; NEXT_HALF_PAGE"
keymap C-b COMMAND "PREV_HALF_PAGE; PREV_HALF_PAGE"
keymap zz CENTER_V
keymap zt COMMAND "CENTER_V; NEXT_HALF_PAGE"
keymap zb COMMAND "CENTER_V; PREV_HALF_PAGE"
#-cursor.......................................................................
keymap l MOVE_RIGHT1
keymap h MOVE_LEFT1
keymap j MOVE_DOWN1
keymap k MOVE_UP1
keymap 0 LINE_BEGIN
keymap $ LINE_END
keymap w NEXT_WORD
keymap b PREV_WORD
keymap C-o UNDO # Undo cursor movement.
# keymap C-i REDO # Undo undone cursor movement (confused with TAB)
#-tab..........................................................................
# Close current tab and save it to be able to restore it.
keymap x COMMAND "EXTERN 'echo %s >> ~/.w3m/RestoreTab.txt' ; CLOSE_TAB"
# new search in new tab (drops right into google search)
keymap o COMMAND "GOTO https://google.com; GOTO_LINE 6; NEXT_LINK; GOTO_LINK"
# new search (drops right into google search)
keymap O COMMAND "TAB_GOTO https://google.com; GOTO_LINE 6; NEXT_LINK; GOTO_LINK"
keymap J PREV_TAB # Change focus to right tab
keymap K NEXT_TAB # Change focus to left tab
keymap gJ TAB_LEFT # Move tab to the left
keymap gK TAB_RIGHT # Move tab to the right
keymap yt NEW_TAB # Duplicate current tab
keymap gt TAB_MENU # Tab menu
keymap :t TAB_MENU # Tab menu
# keymap X TAB_GOTO /usr/lib/w3m/cgi-bin/restore_tab.cgi # Restore last closed tab
#-url operations...............................................................
keymap f GOTO_LINK # Follow link in current tab
keymap gf TAB_LINK # Follow link in a new foreground tab
keymap F COMMAND "TAB_LINK; PREV_TAB" # follow link under cursor in new background tab
keymap gF MOVE_LIST_MENU # link list --> move cursor to link
keymap r RELOAD # Reload current page.
#-link navigation..............................................................
keymap [ NEXT_LEFT_UP
keymap ] NEXT_RIGHT_DOWN
#-history navigation...........................................................
keymap L NEXT # Go forward in history
keymap H PREV # Go back in history
keymap :b SELECT_MENU # Recent pages
keymap :B HISTORY # Show history
#-bookmarks....................................................................
# keymap C-d ADD_BOOKMARK # Add current page to bookmarks
# keymap gb VIEW_BOOKMARK # Show bookmarks
# keymap :b VIEW_BOOKMARK # Show bookmarks
#-search.......................................................................
keymap / ISEARCH # Enter find mode
keymap ? ISEARCH_BACK # Enter find mode backwards (incremental)
keymap n SEARCH_NEXT # Find next
keymap N SEARCH_PREV # Find previous
#-commands.....................................................................
keymap ! COMMAND
keymap | PIPE_BUF # Send rendered document to pipe
keymap :h HELP # View help
keymap :o OPTIONS # Option setting panel
keymap :q QUIT # Quit w3m with confirmation (q alone works too)
keymap ZZ EXIT # Quit w3m without confirmation.
# Reload configuration files.
keymap :s REINIT
#-info.........................................................................
keymap gC-g INFO # current page info
keymap C-g LINE_INFO # line under cursor info
#-miscellaneous................................................................
keymap v EDIT_SCREEN # Edit current rendered document with sensible-editor
#-unused url operations.......................................................
# keymap PEEK # Show current page url.
# Focus in address bar.
# keymap ef PEEK_LINK # Show link under cursor.
# Execute external browser = open current link in $BROWSER
# tip: number(2-9) + external browser shortcut(M-o) executes executes the
# external browser command linked to the prefix number.
# See "External Program Settings" in "Option Setting Panel"(OPTIONS)
# Open current link with external browser = sensible browser
# keymap M-o EXTERN
# copy current url and remove newline at the end.
# keymap yy EXTERN copy_url.sh
# keymap yy EXTERN "echo -n %s | xclip -i -selection clipboard"
# keymap yy EXTERN "echo -n %s | xsel -b"
# open link under cursor with external browser = sensible browser
# keymap M-p EXTERN_LINK
# Copy link under cursor, It does not copy images urls
# keymap yf EXTERN_LINK 'env printf %s "$0" | xsel -b'
# keymap yf EXTERN_LINK copy_url.sh
# follow link in clipboard in the current tab.
# keymap p GOTO /usr/lib/w3m/cgi-bin/goto_clipboard.cgi
# follow link in clipboard in new foreground tab.
# keymap P TAB_GOTO /usr/lib/w3m/cgi-bin/goto_clipboard.cgi
#-.............................................................................