Giter Club home page Giter Club logo

qfenter's Introduction

QFEnter

QFEnter allows you to open items from Vim's quickfix or location list wherever you wish.

You can set a target window by giving it focus just before jumping to the quickfix (or location list) window , or you can open items in new splits, vsplits, and tabs. You can even open multiple items at once by visual selection!

A normal mode example: qfenter

A visual mode example: qfentervisualopt

Motivation

Vim's default means of opening items from the quickfix list are limited and inconvenient:

  • You cannot select a window in which to open a file when you press <Enter>:

    Hitting the <Enter> key or double-clicking the mouse on a line has the same effect. The file containing the error is opened in the window above the quickfix window. -- from :help quickfix

    It is inconsistent with other Quickfix commands like :cnext and :cprev which open a file in a previously focused window.

  • You cannot decide where a horizontal split will be created when using Ctrl-W <Enter>, Vim always creates the new split window above the quickfix window.

  • There is no command at all for 'open in a new vertical split window'.

These are confusing and bothered me every time, so I wrote a simple plugin to make up for these weak points. Its name comes from the most basic way to open a file from the quickfix window -- the <Enter> key.

Installation

  • Using plugin managers (recommended)
    • Vundle : Add Plugin 'yssl/QFEnter' to .vimrc & :PluginInstall
    • NeoBundle : Add NeoBundle 'yssl/QFEnter' to .vimrc & :NeoBundleInstall
    • vim-plug : Add Plug 'yssl/QFEnter' to .vimrc & :PlugInstall
  • Using Pathogen
    • cd ~/.vim/bundle; git clone https://github.com/yssl/QFEnter.git
  • Manual install (not recommended)
    • Download this plugin and extract it in ~/.vim/

Usage

In the quickfix (or location list) window,

  • <Enter>, <2-LeftMouse>

    • Normal mode : Open an item under cursor in the previously focused window.
    • Visual mode : Open items in visual selection in the previously focused window. As a result, the last item appears in the window.
  • <Leader><Enter>

    • Normal mode : Open an item under cursor in a new vertical split of the previously focused window.
    • Visual mode : Open items in visual selection in a sequence of new vertical splits from the previously focused window.
  • <Leader><Space>

    • Normal mode : Open an item under cursor in a new horizontal split from the previously focused window.
    • Visual mode : Open items in visual selection in a sequence of new horizontal splits of the previously focused window.
  • <Leader><Tab>

    • Normal mode : Open an item under cursor in a new tab.
    • Visual mode : Open items in visual selection in a sequence of new tabs.
    • By default, the quickfix window is automatically opened in the new tab to help you open other quickfix items. This behavior can be changed with the g:qfenter_enable_autoquickfix option.

Key mapping

You can change the key mappings in your .vimrc in the following format:

let g:qfenter_keymap = {}
let g:qfenter_keymap.predefined_command = shortcut_key_list

The default setting is,

let g:qfenter_keymap = {}
let g:qfenter_keymap.open = ['<CR>', '<2-LeftMouse>']
let g:qfenter_keymap.vopen = ['<Leader><CR>']
let g:qfenter_keymap.hopen = ['<Leader><Space>']
let g:qfenter_keymap.topen = ['<Leader><Tab>']

If you're a CtrlP user, for instance, you might like these for familiarity:

let g:qfenter_keymap = {}
let g:qfenter_keymap.vopen = ['<C-v>']
let g:qfenter_keymap.hopen = ['<C-CR>', '<C-s>', '<C-x>']
let g:qfenter_keymap.topen = ['<C-t>']

Predefined commands

Commands Meaning
open Open items under cursor or in visual block in a previously focused window.
vopen Open items under cursor or in visual block in new vertical splits from a previously focused window.
hopen Open items under cursor or in visual block in new horizontal splits from a previously focused window.
topen Open items under cursor or in visual block in new tabs.
cnext Open items using :cnext command in a previously focused window.
vcnext Open items using :cnext command in new vertical splits from a previously focused window.
hcnext Open items using :cnext command in new horizontal splits from a previously focused window.
tcnext Open items using :cnext command in new tabs.
cprev Open items using :cprev command in a previously focused window.
vcprev Open items using :cprev command in new vertical splits from a previously focused window.
hcprev Open items using :cprev command in new horizontal splits from a previously focused window.
tcprev Open items using :cprev command in new tabs.
open_keep Same as open, but the quickfix (or location list) window keeps focus after opening items.
vopen_keep Same as vopen, but the quickfix (or location list) window keeps focus after opening items.
hopen_keep Same as hopen, but the quickfix (or location list) window keeps focus after opening items.
topen_keep Same as topen, but the quickfix (or location list) window keeps focus after opening items.
cnext_keep Same as cnext, but the quickfix (or location list) window keeps focus after opening items.
vcnext_keep Same as vcnext, but the quickfix (or location list) window keeps focus after opening items.
hcnext_keep Same as hcnext, but the quickfix (or location list) window keeps focus after opening items.
tcnext_keep Same as tcnext, but the quickfix (or location list) window keeps focus after opening items.
cprev_keep Same as cprev, but the quickfix (or location list) window keeps focus after opening items.
vcprev_keep Same as vcprev, but the quickfix (or location list) window keeps focus after opening items.
hcprev_keep Same as hcprev, but the quickfix (or location list) window keeps focus after opening items.
tcprev_keep Same as tcprev, but the quickfix (or location list) window keeps focus after opening items.

For example, to open a next quickfix item in a previously focused window while keeping focus in the quickfix window by typing <Leader>n, you can use these:

let g:qfenter_keymap = {}
let g:qfenter_keymap.cnext_keep = ['<Leader>n']

Preventing opening items in windows of certain filetypes

Use g:qfenter_exclude_filetypes to prevent quickfix items from opening in windows of certain filetypes. For example, you can prevent opening items in NERDTree and Tagbar windows using the following code in your .vimrc:

let g:qfenter_exclude_filetypes = ['nerdtree', 'tagbar']

You can check filetype of the current window using :echo &filetype.

Policy to determine the previous window / tab

Use g:qfenter_prevtabwin_policy to determine which window on which tab should have focus when the wincmd p is executed after opening a quickfix item.

  • 'qf': The previous window and tab are set to the quickfix window from which the QFEnter open command is invoked and the tab the window belongs to.
  • 'none': Do nothing for the previous window and tab. The previous window is the window that previously had focus before the target window, in the process of tabwinfunc.
    • For v* and h* predefined commands, the previous window is the window focused before the quickfix window.
    • For t* predefined commands, the previous window and tab are the window focused before the quickfix window and the tab it belongs to.
  • 'legacy': The option for legacy behavior prior to QFEnter 2.4.1.
    • For t* predefined commands, follow the 'qf' policy.
    • Otherwise, follow the 'none' policy.

The default setting is,

let g:qfenter_prevtabwin_policy = 'qf'

Use of custom functions to specify a target window (for advanced users)

You can use your custom function, instead of the predefined commands, to specify the window to jump to.

For this, use g:qfenter_custom_map_list in your .vimrc. Each item in g:qfenter_custom_map_list should have four key-value pairs:

  • tabwinfunc: The name of your custom function to specify the target window, which should not have any parameters. Its return value should be a list of [tabpagenr, winnr, hasfocus, isnewtabwin].
    • tabpagenr: tabpage number of the target window
    • winnr: window number of the target window
    • hasfocus: whether the target window already has focus or not
    • isnewtabwin:
      • 'nt': the target window is in a newly created tab
      • 'nw': the target window is a newly created window
      • otherwise: the target window is one of existing windows
  • qfopencmd: One of the following values
    • 'cc': Open a quickfix item using :cc.
    • 'cn': Open a quickfix item using :cnext.
    • 'cp': Open a quickfix item using :cprev.
  • keepfocus: 1 to keep focus in the quickfix (or location list) window after opening an item, otherwise 0.
  • keys: shortcut key list

For example, with the following code in .vimrc,

  • You can open a next quickfix item in a previously focused window while keeping focus in the quickfix window by typing <Leader>n (identical effect to let g:qfenter_keymap.cnext_keep = ['<Leader>n']).
  • You can open a quickfix item under cursor in the first window (winnr==1) in the first tab (tabpagenr==1) by typing <Leader>f.
let g:qfenter_custom_map_list = []
call add(g:qfenter_custom_map_list, {
			\'tabwinfunc': 'QFEnter#GetTabWinNR_Open',
			\'qfopencmd': 'cn',
			\'keepfocus': 1,
			\'keys': ['<Leader>n'],
			\})
call add(g:qfenter_custom_map_list, {
			\'tabwinfunc': 'TestTab1Win1_Open',
			\'qfopencmd': 'cc',
			\'keepfocus': 0,
			\'keys': ['<Leader>f'],
			\})
func! TestTab1Win1_Open()
	return [1, 1, 0, '']
endfunc

qfenter's People

Contributors

ches avatar dragonxlwang avatar feix760 avatar mmontu avatar mmrwoods avatar qmonkey avatar tssm avatar youdulayo avatar yssl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

qfenter's Issues

QFEnter raises error when using quickfix list with vim-bookmarks plugin

I use both the QFEnter and vim-bookmarks plugin, and am receiving a QFEnter error in some cases. I realize this is not the place to post vim-bookmarks issues, but my first impression is that this is a problem that should be fixed in QFEnter. I am using QFEnter with all default settings.

The vim-bookmarks plugin displays predefined bookmarks inside the quickfix window. If I configure the quickfix window to auto-close when a bookmark is selected from there (this is a vim-bookmarks setting), I receive this error.

Error detected while processing function QFEnter#OpenQFItem[8]..<SNR>116_OpenQFItem[37]..<SNR>116_JumpToWin:
Line    1:
E16: Invalid range: 2wincmd w

After pressing Enter to move past the error, focus jumps correctly to the selected bookmark in the previously focused window, which is what I want. The error occurs in both vim and neovim.

The error does not occur If I happen to have another window open (without focus) at the time the quickfix list is being used.

After reviewing the QFEnter code and a few web searches, I found that modifying the QFEnter JumpToWin function as follows fixes the problem.

fun! s:JumpToWin(winnum)
	silent! exec a:winnum.'wincmd w'
endfun

Because the error is not fatal, using 'silent!' to ignore it gives the desired behavior. I don't know if this fix has any unwanted side effects and therefore didn't create a PR for it, but it looks reasonable to me. I could imagine this becoming a nuisance error with other plugins as well.

What do you think?

The location list should be open when open an item under cursor in a new tab

I have set this option:

let g:qfenter_enable_autoquickfix = 1

Therefore, when 'open in a new tab' command is executed inside the location list, the location list window should be opened automatically rather than the quickfix window.

I have a solution. How about replacing the line 258 with the code below?

if isloclist
	exec modifier 'lopen'
else
	exec modifier 'copen'
endif

open_keep mapping doesn't appear to work

Issue

In my ~/.vimrc:

let g:qfenter_keymap = {}
let g:qfenter_keymap.open_keep = ['<CR>']
let g:qfenter_keymap.vopen_keep = ['<Leader><CR>']
let g:qfenter_keymap.hopen_keep = ['<Leader><Space>']

The mappings for vopen_keep and hopen_keep work just fine, but open_keep does not. Am I doing something wrong here?

Debug Information

While in a qf window, :nmap outputs:

n  <CR>        *@:call QFEnter#OpenQFItem("o","c","0",0)<CR>
n  ,<Tab>      *@:call QFEnter#OpenQFItem("t","c","0",0)<CR>
n  ,<Space>    *@:call QFEnter#OpenQFItem("h","c","1",0)<CR>
n  ,<CR>       *@:call QFEnter#OpenQFItem("v","c","1",0)<CR>

so it seems that the mapping isn't getting setup correctly.

:echo g:qfenter_keymap outputs:

{
'vopen': ['<Leader><CR>'], 
'hopen': ['<Leader><Space>'],
'vopen_keep': ['<Leader><CR>'], 
'topen': ['<Leader><Tab>'], 
'open_keep': ['<CR>'],
'open': ['<CR>', '<2-LeftMouse>'],
'hopen_keep': ['<Leader><Space>']
}

so it appears the hopen_keep and vopen_keep are working due to the fact that they got mapped after their associated non-keep commands?

Temporary Solution

Instead of what I've mentioned above, use:

let g:qfenter_keymap = {}
let g:qfenter_keymap.open = ['']
let g:qfenter_keymap.open_keep = ['<CR>']
let g:qfenter_keymap.vopen_keep = ['<Leader><CR>']
let g:qfenter_keymap.hopen_keep = ['<Leader><Space>']

Error when trying to make custom keymappings

image

Getting an error when trying to make some custom mappings like this

``
let g:qfenter_exclude_filetypes = ['nerdtree', 'tagbar']
let g:qfenter_keymap = {}
let g:qfenter_keymap.cnext_keep = ['b']

``

Separate mappings for open with quickfix focused

Is it possible to create different mappings for opening from the quickfix window, but keeping focus on the quickfix window? I know there is the g:qfenter_keep_quickfixfocus variable, but this seems to override the default open behavior of changing focus to the window with the error.

I became interested by some quickfix features of the ack.vim plugin. Unfortunately, the mappings for this only seem to apply to a quickfix window with ack results and they go away after you close the quickfix window.

E154

Hi, thanks for your work and please help me resolve this:
after ":helptags ~/.vim/bundle/QFEnter/doc" command
i have:
E154: Duplicate tag "g:qfenter_enable_autoquickfix" in file ~/.vim/bundle/QFEnter/doc/QFEnter.txt

No such event on vim's starup

Thanks for the plugin! It works on Archlinux just fine. However, when launched from vim running on fedora:25, I get this error:

$ vim plugin/QFEnter.vim
Error detected while processing /home/miminar/.vim/bundle/QFEnter/plugin/QFEnter.vim:
line  138:
E216: No such event: qf call s:RegisterKeymap()
Press ENTER or type command to continue

I'm using vundle to load the plugin.

Affected vim version is vim-enhanced-8.0.562-1.fc25.x86_64:

$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 11 2017 20:00:38)
Included patches: 1-562
Modified by <[email protected]>
Compiled by <[email protected]>
Huge version without GUI.  Features included (+) or not (-):
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     -tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminfo
++builtin_terms  +fork()          +multi_lang      +termresponse
+byte_offset     +gettext         -mzscheme        +textobjects
+channel         -hangul_input    +netbeans_intg   +timers
+cindent         +iconv           +num64           +title
-clientserver    +insert_expand   +packages        -toolbar
-clipboard       +job             +path_extra      +user_commands
+cmdline_compl   +jumplist        +perl/dyn        +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       +python/dyn      +vreplace
+cscope          +lispindent      +python3/dyn     +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con      +lua/dyn         +rightleft       +writebackup
+diff            +menu            +ruby/dyn        -X11
+digraphs        +mksession       +scrollbind      -xfontset
-dnd             +modify_fname    +signs           -xim
-ebcdic          +mouse           +smartindent     -xpm
+emacs_tags      -mouseshape      +startuptime     -xsmp
+eval            +mouse_dec       +statusline      -xterm_clipboard
+ex_extra        +mouse_gpm       -sun_workshop    -xterm_save
+extra_search    -mouse_jsbterm   +syntax
+farsi           +mouse_netterm   +tag_binary
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/etc"
 f-b for $VIMRUNTIME: "/usr/share/vim/vim80"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -O2 -g -pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc   -L. -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,--enable-new-dtags -Wl,-z,relro   -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/usr/local/lib -Wl,--as-needed -o vim        -lm -lnsl  -lselinux   -lncurses -lacl -lattr -lgpm -ldl   -Wl,--enable-new-dtags -Wl,-z,relro  -Wl,-z,relro  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -lnsl -ldl -lm -lcrypt -lutil -lc

Not sure if that makes a difference, but the vim is launched in a container. However, I don't have such problems with ~40 other plugins.

"No location list error" when using topen

This plugin is so valuable. Just one problem, I have mapped topen to <C-t>, and when I use it, I always get this error:

Error detected while processing function QFEnter#OpenQFItem[8]..<SNR>99_OpenQFItem[48]..<SNR>99_ExecuteCC:
line    7:
E776: No location list
Error detected while processing function QFEnter#OpenQFItem[8]..<SNR>99_OpenQFItem:
line   84:
E776: No location list

I narrowed it down to this plugin: vim-quit-if-only-quickfix-buffer-left which closes windows if only a quickfix remains. This is also really valuable.

Any way to make them play nicely together?

Open in visible window, if present

Hi. Would it be possible to reuse existing windows first, then use the previously focused one? It's a bit incontinent to get the same file opened twice.

exclude nerdtree window。

If previously focused window is a needtree window, can we make an exception? I would like to keep needtree windows static.

QFEnter creates new buffers named: ""[No Name]"

When using e.g. to open an entry in a vertical split, a new buffer is also created with the name ""[No Name]"".

This is kinda annoying because after using QFEnter several times you'll end up with several useless buffers.

Regards,

Robert

Latest QFEnter update broken

After updating QFEnter today, I'm greeted with this error message while entering Vim:

Error detected while processing /Users/arvidgerstmann/.vim/bundle/QFEnter/plugin/QFEnter.vim:
line   86:
E121: Undefined variable: open
E15: Invalid expression: exists('g:qfenter_keep_quickfixfocus') && g:qfenter_keep_quickfixfocus.open && g:qfenter_keep_quickfixfocus.open == 1
line   98:
E121: Undefined variable: cnext
E15: Invalid expression: exists('g:qfenter_keep_quickfixfocus') && g:qfenter_keep_quickfixfocus.cnext && g:qfenter_keep_quickfixfocus.cnext == 1
line  110:
E121: Undefined variable: cprev
E15: Invalid expression: exists('g:qfenter_keep_quickfixfocus') && g:qfenter_keep_quickfixfocus.cprev && g:qfenter_keep_quickfixfocus.cprev == 1

I'm running Vim 8.0:

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan 10 2017 16:16:40)
MacOS X (unix) version
Included patches: 1-165
Compiled by me, myself and I
Huge version without GUI.  Features included (+) or not (-):
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     -tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminfo
++builtin_terms  +fork()          +multi_lang      +termresponse
+byte_offset     -gettext         -mzscheme        +textobjects
+channel         -hangul_input    +netbeans_intg   +timers
+cindent         +iconv           +num64           +title
-clientserver    +insert_expand   +packages        -toolbar
+clipboard       +job             +path_extra      +user_commands
+cmdline_compl   +jumplist        +perl            +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      +python3         +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con      +lua             +rightleft       +writebackup
+diff            +menu            +ruby            -X11
+digraphs        +mksession       +scrollbind      -xfontset
-dnd             +modify_fname    +signs           -xim
-ebcdic          +mouse           +smartindent     -xpm
+emacs_tags      -mouseshape      +startuptime     -xsmp
+eval            +mouse_dec       +statusline      -xterm_clipboard
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_save
+extra_search    -mouse_jsbterm   +syntax
+farsi           +mouse_netterm   +tag_binary
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X_UNIX  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang   -L. -L/usr/local/lib  -L/usr/local/lib -o vim        -lncurses -liconv -framework Cocoa  -L/usr/local/lib -llua -mmacosx-version-min=10.11 -fstack-protector-strong -L/usr/local/lib  -L/usr/local/Cellar/perl/5.24.0_1/lib/perl5/5.24.0/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc  -L/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/config-3.6m-darwin -lpython3.6m -framework CoreFoundation  -lruby.2.0.0 -lobjc

Support Location List

I would love to use enter on things in the location list that syntastic, for example, populates. Right now QFEnter fails on the 'cc' command when pressing enter in the location list.

previous window not quickfix window when jumping back from already open split

If the quickfix window, the buffer that contains the line of a quickfix entry and another window are shown the current tab, then,

  1. inside the quickfix window with the cursor on the line of the quickfix entry, hitting the mapping bound to g:qfenter_keymap.hopen, by default <Leader><Space> (to jump to the buffer of that quickfix entry), and
  2. hitting <c-w>p (see :help CTRL-W_p), now inside the window of the buffer that contains the quickfix entry

then the focus should expectedly go back to the previous window, the quickfix window.

Instead, it will be that of the other window.

Alternatives to :cnext and :cprev

First of all, thank you for sharing this great plugin! The default behavior of quickfix get really annoying sometimes.

I've been using some mappings to navigate in quickfix entries like this:

nnoremap <buffer> K :cp<CR><c-w>p

, repeated for <c-UP>, and with :cn for<c-DOWN> and J.

After installing this plugin I notice they are no longer ok :)

As :cnext and :cprev aren't supported by QFEnter, I've ended with this workaround, based on the plugin implementation:

nnoremap <buffer> K :wincmd p \| cp \| redraw \| wincmd p<CR>

This is OK for me, but maybe it could be useful for others users to have an implementation of QFEnterCnext and QFEnterCprev. In case you like the idea, I've thought of two implementations:

  • Create g:qfenter_cp_cmd and g:qfenter_cn_cmd and apply the same procedure of the mapping above
  • Keep track of the last quickfix entry opened on function s:ExecuteCC() on an b:var and then use it to open with g:qfenter_cc_cmd

Is it possible to integrate with choosewin.vim?

Hello and thank you for this terrific plugin!

I wonder if it's possible to somehow integrate QFEnter with choosewin.vim. This plugin prompts to select a particular window to be chosen when opening a file. An example of such integration is nerdtree_choosewin-plugin, so I wonder if QFEnter can allow something similar either built-in or by providing some API that can be used for integration.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.