Hi, Here is a small patch for specifying a window in which vim opens an error when you hit ENTER in a quickfix window. With this patch, you may hit "3<CR>" in the quickfix window, then the selected error is displayed in the window #3.
Often I face a situation that I want to display an error, but don't want to hide a buffer in the above window or open a new window and break window layout. I think this feature would be helpful in such time. What do you people think about this? Regards, -- AOYAMA Shotaro mailto:[EMAIL PROTECTED]
*** normal.c.orig Mon Jan 1 02:32:09 2007 --- normal.c Mon Jan 1 04:09:05 2007 *************** *** 5900,5909 **** #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) /* In a quickfix window a <CR> jumps to the error under the cursor. */ if (bt_quickfix(curbuf) && cap->cmdchar == CAR) if (curwin->w_llist_ref == NULL) ! do_cmdline_cmd((char_u *)".cc"); /* quickfix window */ else ! do_cmdline_cmd((char_u *)".ll"); /* location list window */ else #endif { --- 5900,5924 ---- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) /* In a quickfix window a <CR> jumps to the error under the cursor. */ if (bt_quickfix(curbuf) && cap->cmdchar == CAR) + { + char wincmd_buf[32]; + char jumpcmd_buf[32]; + linenr_T lnum; + + lnum = curwin->w_cursor.lnum; + + if (cap->count0 != 0) + { + sprintf(wincmd_buf, "%dwincmd w", cap->count0); + do_cmdline_cmd((char_u *) wincmd_buf); + } + if (curwin->w_llist_ref == NULL) ! sprintf(jumpcmd_buf, "%dcc", lnum); else ! sprintf(jumpcmd_buf, "%dll", lnum); ! do_cmdline_cmd((char_u *)jumpcmd_buf); /* quickfix window */ ! } else #endif {