mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00:00
Merge pull request #13425 from bfredl/secretcharm
ex_getln: add secret charm
This commit is contained in:
@@ -215,6 +215,9 @@ CTRL-Y When there is a modeless selection, copy the selection into
|
|||||||
the clipboard.
|
the clipboard.
|
||||||
If there is no selection CTRL-Y is inserted as a character.
|
If there is no selection CTRL-Y is inserted as a character.
|
||||||
|
|
||||||
|
*c_CTRL-Z*
|
||||||
|
CTRL-Z Trigger 'wildmode'. Same as 'wildcharm', but always available.
|
||||||
|
|
||||||
CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
||||||
<CR> or <NL> start entered command
|
<CR> or <NL> start entered command
|
||||||
|
|
||||||
|
@@ -1024,7 +1024,7 @@ static int command_line_execute(VimState *state, int key)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// free expanded names when finished walking through matches
|
// free expanded names when finished walking through matches
|
||||||
if (!(s->c == p_wc && KeyTyped) && s->c != p_wcm
|
if (!(s->c == p_wc && KeyTyped) && s->c != p_wcm && s->c != Ctrl_Z
|
||||||
&& s->c != Ctrl_N && s->c != Ctrl_P && s->c != Ctrl_A
|
&& s->c != Ctrl_N && s->c != Ctrl_P && s->c != Ctrl_A
|
||||||
&& s->c != Ctrl_L) {
|
&& s->c != Ctrl_L) {
|
||||||
if (compl_match_array) {
|
if (compl_match_array) {
|
||||||
@@ -1328,7 +1328,8 @@ static int command_line_execute(VimState *state, int key)
|
|||||||
// - hitting <ESC> twice means: abandon command line.
|
// - hitting <ESC> twice means: abandon command line.
|
||||||
// - wildcard expansion is only done when the 'wildchar' key is really
|
// - wildcard expansion is only done when the 'wildchar' key is really
|
||||||
// typed, not when it comes from a macro
|
// typed, not when it comes from a macro
|
||||||
if ((s->c == p_wc && !s->gotesc && KeyTyped) || s->c == p_wcm) {
|
if ((s->c == p_wc && !s->gotesc && KeyTyped) || s->c == p_wcm
|
||||||
|
|| s->c == Ctrl_Z) {
|
||||||
int options = WILD_NO_BEEP;
|
int options = WILD_NO_BEEP;
|
||||||
if (wim_flags[s->wim_index] & WIM_BUFLASTUSED) {
|
if (wim_flags[s->wim_index] & WIM_BUFLASTUSED) {
|
||||||
options |= WILD_BUFLASTUSED;
|
options |= WILD_BUFLASTUSED;
|
||||||
|
@@ -442,6 +442,7 @@ function module.new_argv(...)
|
|||||||
'NVIM_LOG_FILE',
|
'NVIM_LOG_FILE',
|
||||||
'NVIM_RPLUGIN_MANIFEST',
|
'NVIM_RPLUGIN_MANIFEST',
|
||||||
'GCOV_ERROR_FILE',
|
'GCOV_ERROR_FILE',
|
||||||
|
'XDG_DATA_DIRS',
|
||||||
'TMPDIR',
|
'TMPDIR',
|
||||||
}) do
|
}) do
|
||||||
if not env_tbl[k] then
|
if not env_tbl[k] then
|
||||||
|
@@ -3,6 +3,7 @@ local Screen = require('test.functional.ui.screen')
|
|||||||
local clear, feed, command = helpers.clear, helpers.feed, helpers.command
|
local clear, feed, command = helpers.clear, helpers.feed, helpers.command
|
||||||
local iswin = helpers.iswin
|
local iswin = helpers.iswin
|
||||||
local funcs = helpers.funcs
|
local funcs = helpers.funcs
|
||||||
|
local meths = helpers.meths
|
||||||
local eq = helpers.eq
|
local eq = helpers.eq
|
||||||
local eval = helpers.eval
|
local eval = helpers.eval
|
||||||
local retry = helpers.retry
|
local retry = helpers.retry
|
||||||
@@ -396,6 +397,64 @@ describe("'wildmenu'", function()
|
|||||||
|
|
|
|
||||||
]])
|
]])
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('works with c_CTRL_Z standard mapping', function()
|
||||||
|
screen:set_default_attr_ids {
|
||||||
|
[1] = {bold = true, foreground = Screen.colors.Blue1};
|
||||||
|
[2] = {foreground = Screen.colors.Grey0, background = Screen.colors.Yellow};
|
||||||
|
[3] = {bold = true, reverse = true};
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Wildcharm? where we are going we aint't no need no wildcharm.
|
||||||
|
eq(0, meths.get_option'wildcharm')
|
||||||
|
-- Don't mess the defaults yet (neovim is about backwards compatibility)
|
||||||
|
eq(9, meths.get_option'wildchar')
|
||||||
|
-- Lol what is cnoremap? Some say it can define mappings.
|
||||||
|
command 'set wildchar=0'
|
||||||
|
eq(0, meths.get_option'wildchar')
|
||||||
|
|
||||||
|
command 'cnoremap <f2> <c-z>'
|
||||||
|
feed(':syntax <f2>')
|
||||||
|
screen:expect{grid=[[
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{2:case}{3: clear cluster > }|
|
||||||
|
:syntax case^ |
|
||||||
|
]]}
|
||||||
|
feed '<esc>'
|
||||||
|
|
||||||
|
command 'set wildmode=longest:full,full'
|
||||||
|
-- this will get cleaner once we have native lua expr mappings:
|
||||||
|
command [[cnoremap <expr> <tab> luaeval("not rawset(_G, 'coin', not coin).coin") ? "<c-z>" : "c"]]
|
||||||
|
|
||||||
|
feed ':syntax <tab>'
|
||||||
|
screen:expect{grid=[[
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
:syntax c^ |
|
||||||
|
]]}
|
||||||
|
|
||||||
|
feed '<tab>'
|
||||||
|
screen:expect{grid=[[
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{3:case clear cluster > }|
|
||||||
|
:syntax c^ |
|
||||||
|
]]}
|
||||||
|
|
||||||
|
feed '<tab>'
|
||||||
|
screen:expect{grid=[[
|
||||||
|
|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
:syntax cc^ |
|
||||||
|
]]}
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('command line completion', function()
|
describe('command line completion', function()
|
||||||
|
Reference in New Issue
Block a user