Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox 将堆栈溢出与Vim集成_Firefox_Vim - Fatal编程技术网

Firefox 将堆栈溢出与Vim集成

Firefox 将堆栈溢出与Vim集成,firefox,vim,Firefox,Vim,我最近开始在这里做复习任务(编辑第一篇文章/迟交的答案等) 起初,我试图从Firefox本身进行编辑 然后我开始复制到Vim并在那里进行格式化 不久,我发现了Firefox用于编辑多行文本字段的插件 因此,现在我正试图找到下一步,它将消除所有这些鼠标点击(编辑/提交等),以便仅在Vim上完成这项工作。Firefox中当前的界面(只需单击一下,您就可以看到下一篇文章)似乎完全可以集成到Vim中,所以我想知道是否/如何实现这一点 如果没有,您有哪些好的做法?好的,这里有一种方法: 安装Firef

我最近开始在这里做复习任务(编辑第一篇文章/迟交的答案等)

  • 起初,我试图从Firefox本身进行编辑
  • 然后我开始复制到Vim并在那里进行格式化
  • 不久,我发现了Firefox用于编辑多行文本字段的插件
因此,现在我正试图找到下一步,它将消除所有这些鼠标点击(编辑/提交等),以便仅在Vim上完成这项工作。Firefox中当前的界面(只需单击一下,您就可以看到下一篇文章)似乎完全可以集成到Vim中,所以我想知道是否/如何实现这一点


如果没有,您有哪些好的做法?

好的,这里有一种方法:

  • 安装Firefox的awesom Vim类插件
  • 将以下内容添加到~/.vimperatorrc

    autocmd LocationChange.*:set editor=“xterm-x vim”

  • Vim编辑器在由Vim按键控制的浏览器中,无需鼠标。赢(顺便说一句,子站点是您选择的xterm)


    另一种方法是切换到终端并使用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
    
    #-.............................................................................