parent
52fced6090
commit
2ef6f28e11
|
@ -0,0 +1 @@
|
||||||
|
custom: https://salt.bountysource.com/teams/neovim
|
|
@ -1,7 +1,15 @@
|
||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Report a problem in Nvim
|
||||||
|
title: ''
|
||||||
|
labels: bug
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
<!-- Before reporting: search existing issues and check the FAQ. -->
|
<!-- Before reporting: search existing issues and check the FAQ. -->
|
||||||
|
|
||||||
- `nvim --version`:
|
- `nvim --version`:
|
||||||
- Vim (version: ) behaves differently?
|
- `vim -u DEFAULTS` (version: ) behaves differently?
|
||||||
- Operating system/version:
|
- Operating system/version:
|
||||||
- Terminal name/version:
|
- Terminal name/version:
|
||||||
- `$TERM`:
|
- `$TERM`:
|
|
@ -0,0 +1,27 @@
|
||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Request an enhancement for Nvim
|
||||||
|
title: ''
|
||||||
|
labels: enhancement
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- Before reporting: search existing issues and check the FAQ. -->
|
||||||
|
|
||||||
|
- `nvim --version`:
|
||||||
|
- `vim -u DEFAULTS` (version: ) behaves differently?
|
||||||
|
- Operating system/version:
|
||||||
|
- Terminal name/version:
|
||||||
|
- `$TERM`:
|
||||||
|
|
||||||
|
### Steps to reproduce using `nvim -u NORC`
|
||||||
|
|
||||||
|
```
|
||||||
|
nvim -u NORC
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Actual behaviour
|
||||||
|
|
||||||
|
### Expected behaviour
|
||||||
|
|
|
@ -58,6 +58,10 @@ Normal commands ~
|
||||||
|
|
||||||
Options ~
|
Options ~
|
||||||
*'cscopeverbose'* Enabled by default. Use |:silent| instead.
|
*'cscopeverbose'* Enabled by default. Use |:silent| instead.
|
||||||
|
*'exrc'* *'ex'* Security risk: downloaded files could include
|
||||||
|
a malicious .nvimrc or .exrc file. See 'secure'.
|
||||||
|
Recommended alternative: define an autocommand in your
|
||||||
|
|vimrc| to set options for a matching directory.
|
||||||
'gd'
|
'gd'
|
||||||
'gdefault' Enables the |:substitute| flag 'g' by default.
|
'gdefault' Enables the |:substitute| flag 'g' by default.
|
||||||
*'fe'* 'fenc'+'enc' before Vim 6.0; no longer used.
|
*'fe'* 'fenc'+'enc' before Vim 6.0; no longer used.
|
||||||
|
|
|
@ -5333,9 +5333,10 @@ jobwait({ids}[, {timeout}]) *jobwait()*
|
||||||
|
|
||||||
{ids} is a list of |job-id|s to wait for.
|
{ids} is a list of |job-id|s to wait for.
|
||||||
{timeout} is the maximum number of milliseconds to wait.
|
{timeout} is the maximum number of milliseconds to wait.
|
||||||
{timeout} of zero can be used to check if a job-id is valid,
|
|
||||||
without waiting.
|
|
||||||
|
|
||||||
|
Use zero {timeout} to check the status of a job: >
|
||||||
|
let exited = jobwait([{job-id}], 0)[0] >= 0
|
||||||
|
<
|
||||||
During jobwait() callbacks for jobs not in the {ids} list may
|
During jobwait() callbacks for jobs not in the {ids} list may
|
||||||
be invoked. The screen will not redraw unless |:redraw| is
|
be invoked. The screen will not redraw unless |:redraw| is
|
||||||
invoked by a callback.
|
invoked by a callback.
|
||||||
|
|
|
@ -365,21 +365,38 @@ VIM.API *lua-api*
|
||||||
|
|
||||||
`vim.api` exposes the full Nvim |API| as a table of Lua functions.
|
`vim.api` exposes the full Nvim |API| as a table of Lua functions.
|
||||||
|
|
||||||
For example, to use the "nvim_get_current_line()" API function, call
|
Example: to use the "nvim_get_current_line()" API function, call
|
||||||
"vim.api.nvim_get_current_line()": >
|
"vim.api.nvim_get_current_line()": >
|
||||||
|
|
||||||
print(tostring(vim.api.nvim_get_current_line()))
|
print(tostring(vim.api.nvim_get_current_line()))
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
VIM.LOOP *lua-loop*
|
VIM.LOOP *lua-loop*
|
||||||
|
|
||||||
`vim.loop` exposes all features of the Nvim event-loop. This is a lower-level
|
`vim.loop` exposes all features of the Nvim event-loop. This is a lower-level
|
||||||
API that provides functionality for networking, filesystem, and process
|
API that provides functionality for networking, filesystem, and process
|
||||||
management.
|
management. Try this command to see available functions: >
|
||||||
|
|
||||||
|
:lua print(vim.inspect(vim.loop))
|
||||||
|
|
||||||
See http://docs.libuv.org for complete documentation.
|
See http://docs.libuv.org for complete documentation.
|
||||||
See https://github.com/luvit/luv/tree/master/examples for examples.
|
See https://github.com/luvit/luv/tree/master/examples for examples.
|
||||||
|
|
||||||
|
Note: it is not safe to directly invoke the Nvim API from `vim.loop`
|
||||||
|
callbacks. This will crash: >
|
||||||
|
|
||||||
|
local timer = vim.loop.new_timer()
|
||||||
|
timer:start(1000, 0, function()
|
||||||
|
vim.api.nvim_command('sleep 100m') -- BROKEN, will crash.
|
||||||
|
end)
|
||||||
|
|
||||||
|
Instead wrap the API call with |vim.schedule()|. >
|
||||||
|
|
||||||
|
local timer = vim.loop.new_timer()
|
||||||
|
timer:start(1000, 0, function()
|
||||||
|
vim.schedule(function() vim.api.nvim_command('sleep 100m') end)
|
||||||
|
end)
|
||||||
|
|
||||||
Example: repeating timer
|
Example: repeating timer
|
||||||
1. Save this code to a file.
|
1. Save this code to a file.
|
||||||
2. Execute it with ":luafile %". >
|
2. Execute it with ":luafile %". >
|
||||||
|
|
|
@ -117,21 +117,22 @@ higher precedence: it is applied after terminal colors are resolved.
|
||||||
==============================================================================
|
==============================================================================
|
||||||
Status Variables *terminal-status*
|
Status Variables *terminal-status*
|
||||||
|
|
||||||
Terminal buffers maintain some information about the terminal in buffer-local
|
Terminal buffers maintain some buffer-local variables and options. The values
|
||||||
variables:
|
are initialized before TermOpen, so you can use them in a local 'statusline'.
|
||||||
|
Example: >
|
||||||
- *b:term_title* The settable title of the terminal, typically displayed in
|
|
||||||
the window title or tab title of a graphical terminal emulator. Programs
|
|
||||||
running in the terminal can set this title via an escape sequence.
|
|
||||||
- |'channel'| The nvim channel ID for the underlying PTY.
|
|
||||||
|chansend()| can be used to send input to the terminal.
|
|
||||||
|
|
||||||
These variables are initialized before TermOpen, so you can use them in
|
|
||||||
a local 'statusline'. Example: >
|
|
||||||
:autocmd TermOpen * setlocal statusline=%{b:term_title}
|
:autocmd TermOpen * setlocal statusline=%{b:term_title}
|
||||||
<
|
|
||||||
|
- *b:term_title* Terminal title (user-writable), typically displayed in the
|
||||||
|
window title or tab title of a graphical terminal emulator. Terminal
|
||||||
|
programs can set this by emitting an escape sequence.
|
||||||
|
- |'channel'| Terminal PTY |job-id|. Can be used with |chansend()| to send
|
||||||
|
input to the terminal.
|
||||||
|
|
||||||
|
Use |jobwait()| to check if the terminal job has finished: >
|
||||||
|
let exited = jobwait([&channel], 0)[0] >= 0
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
5. Debugging *terminal-debug* *terminal-debugger*
|
:Termdebug plugin *terminal-debug*
|
||||||
|
|
||||||
The Terminal debugging plugin can be used to debug a program with gdb and view
|
The Terminal debugging plugin can be used to debug a program with gdb and view
|
||||||
the source code in a Vim window. Since this is completely contained inside
|
the source code in a Vim window. Since this is completely contained inside
|
||||||
|
|
|
@ -2134,22 +2134,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||||
This option is reset when the 'paste' option is set and restored when
|
This option is reset when the 'paste' option is set and restored when
|
||||||
the 'paste' option is reset.
|
the 'paste' option is reset.
|
||||||
|
|
||||||
*'exrc'* *'ex'* *'noexrc'* *'noex'*
|
|
||||||
'exrc' 'ex' boolean (default off)
|
|
||||||
global
|
|
||||||
Enables the reading of .vimrc and .exrc in the current directory.
|
|
||||||
Setting this option is a potential security leak. E.g., consider
|
|
||||||
unpacking a package or fetching files from github, a .vimrc in there
|
|
||||||
might be a trojan horse. BETTER NOT SET THIS OPTION!
|
|
||||||
Instead, define an autocommand in your .vimrc to set options for a
|
|
||||||
matching directory.
|
|
||||||
|
|
||||||
If you do switch this option on you should also consider setting the
|
|
||||||
'secure' option (see |initialization|).
|
|
||||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
|
||||||
security reasons.
|
|
||||||
Also see |init.vim| and |gui-init|.
|
|
||||||
|
|
||||||
*'fileencoding'* *'fenc'* *E213*
|
*'fileencoding'* *'fenc'* *E213*
|
||||||
'fileencoding' 'fenc' string (default: "")
|
'fileencoding' 'fenc' string (default: "")
|
||||||
local to buffer
|
local to buffer
|
||||||
|
|
|
@ -38,7 +38,7 @@ N is used to indicate an optional count that can be given before the command.
|
||||||
|l| N l right (also: <Space> or <Right> key)
|
|l| N l right (also: <Space> or <Right> key)
|
||||||
|0| 0 to first character in the line (also: <Home> key)
|
|0| 0 to first character in the line (also: <Home> key)
|
||||||
|^| ^ to first non-blank character in the line
|
|^| ^ to first non-blank character in the line
|
||||||
|$| N $ to the last character in the line (N-1 lines lower)
|
|$| N $ to the next EOL (end of line) position
|
||||||
(also: <End> key)
|
(also: <End> key)
|
||||||
|g0| g0 to first character in screen line (differs from "0"
|
|g0| g0 to first character in screen line (differs from "0"
|
||||||
when lines wrap)
|
when lines wrap)
|
||||||
|
|
|
@ -451,14 +451,10 @@ accordingly. Vim proceeds in this order:
|
||||||
- Environment variable $EXINIT, used as an Ex command line.
|
- Environment variable $EXINIT, used as an Ex command line.
|
||||||
|
|
||||||
c. If the 'exrc' option is on (which is NOT the default), the current
|
c. If the 'exrc' option is on (which is NOT the default), the current
|
||||||
directory is searched for three files. The first that exists is used,
|
directory is searched for two files. The first that exists is used,
|
||||||
the others are ignored.
|
the others are ignored.
|
||||||
- The file ".nvimrc" (for Unix)
|
- The file ".nvimrc"
|
||||||
"_nvimrc" (for Win32)
|
- The file ".exrc"
|
||||||
- The file "_nvimrc" (for Unix)
|
|
||||||
".nvimrc" (for Win32)
|
|
||||||
- The file ".exrc" (for Unix)
|
|
||||||
"_exrc" (for Win32)
|
|
||||||
|
|
||||||
4. Enable filetype and indent plugins.
|
4. Enable filetype and indent plugins.
|
||||||
This does the same as the commands: >
|
This does the same as the commands: >
|
||||||
|
|
|
@ -12,22 +12,24 @@ Various commands *various*
|
||||||
1. Various commands *various-cmds*
|
1. Various commands *various-cmds*
|
||||||
|
|
||||||
*CTRL-L*
|
*CTRL-L*
|
||||||
CTRL-L Clear and redraw the screen. The redraw may happen
|
CTRL-L Clears and redraws the screen. The redraw may happen
|
||||||
later, after processing typeahead.
|
later, after processing typeahead.
|
||||||
|
|
||||||
|
*:mod* *:mode*
|
||||||
|
:mod[e] Clears and redraws the screen.
|
||||||
|
|
||||||
*:redr* *:redraw*
|
*:redr* *:redraw*
|
||||||
:redr[aw][!] Redraw the screen right now. When ! is included it is
|
:redr[aw][!] Redraws pending screen updates now, or the entire
|
||||||
cleared first.
|
screen if "!" is included. To CLEAR the screen use
|
||||||
Useful to update the screen halfway through executing
|
|:mode| or |CTRL-L|.
|
||||||
a script or function (or a mapping if 'lazyredraw'
|
Useful to update the screen during a script or
|
||||||
set).
|
function (or a mapping if 'lazyredraw' set).
|
||||||
|
|
||||||
*:redraws* *:redrawstatus*
|
*:redraws* *:redrawstatus*
|
||||||
:redraws[tatus][!] Redraw the status line of the current window. When !
|
:redraws[tatus][!] Redraws the status line of the current window, or all
|
||||||
is included all status lines are redrawn.
|
status lines if "!" is included.
|
||||||
Useful to update the status line(s) when 'statusline'
|
Useful if 'statusline' includes an item that doesn't
|
||||||
includes an item that doesn't cause automatic
|
cause automatic updating.
|
||||||
updating.
|
|
||||||
|
|
||||||
*N<Del>*
|
*N<Del>*
|
||||||
<Del> When entering a number: Remove the last digit.
|
<Del> When entering a number: Remove the last digit.
|
||||||
|
|
|
@ -520,9 +520,6 @@ CTRL-W > Increase current window width by N (default 1).
|
||||||
:vertical res[ize] [N] *:vertical-resize* *CTRL-W_bar*
|
:vertical res[ize] [N] *:vertical-resize* *CTRL-W_bar*
|
||||||
CTRL-W | Set current window width to N (default: widest possible).
|
CTRL-W | Set current window width to N (default: widest possible).
|
||||||
|
|
||||||
*:mod* *:mode*
|
|
||||||
:mod[e] Detects the screen size and redraws the screen.
|
|
||||||
|
|
||||||
You can also resize a window by dragging a status line up or down with the
|
You can also resize a window by dragging a status line up or down with the
|
||||||
mouse. Or by dragging a vertical separator line left or right. This only
|
mouse. Or by dragging a vertical separator line left or right. This only
|
||||||
works if the version of Vim that is being used supports the mouse and the
|
works if the version of Vim that is being used supports the mouse and the
|
||||||
|
|
|
@ -146,11 +146,7 @@ void event_init(void)
|
||||||
// early msgpack-rpc initialization
|
// early msgpack-rpc initialization
|
||||||
msgpack_rpc_init_method_table();
|
msgpack_rpc_init_method_table();
|
||||||
msgpack_rpc_helpers_init();
|
msgpack_rpc_helpers_init();
|
||||||
// Initialize input events
|
|
||||||
input_init();
|
input_init();
|
||||||
// Timer to wake the event loop if a timeout argument is passed to
|
|
||||||
// `event_poll`
|
|
||||||
// Signals
|
|
||||||
signal_init();
|
signal_init();
|
||||||
// finish mspgack-rpc initialization
|
// finish mspgack-rpc initialization
|
||||||
channel_init();
|
channel_init();
|
||||||
|
@ -346,10 +342,8 @@ int main(int argc, char **argv)
|
||||||
p_lpl = false;
|
p_lpl = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// give embedders a chance to set up nvim, by processing a request before
|
// Wait for UIs to set up Nvim or show early messages
|
||||||
// startup. This allows an external UI to show messages and prompts from
|
// and prompts (--cmd, swapfile dialog, …).
|
||||||
// --cmd and buffer loading (e.g. swap files)
|
|
||||||
bool early_ui = false;
|
|
||||||
bool use_remote_ui = (embedded_mode && !headless_mode);
|
bool use_remote_ui = (embedded_mode && !headless_mode);
|
||||||
bool use_builtin_ui = (!headless_mode && !embedded_mode && !silent_mode);
|
bool use_builtin_ui = (!headless_mode && !embedded_mode && !silent_mode);
|
||||||
if (use_remote_ui || use_builtin_ui) {
|
if (use_remote_ui || use_builtin_ui) {
|
||||||
|
@ -364,7 +358,6 @@ int main(int argc, char **argv)
|
||||||
// prepare screen now, so external UIs can display messages
|
// prepare screen now, so external UIs can display messages
|
||||||
starting = NO_BUFFERS;
|
starting = NO_BUFFERS;
|
||||||
screenclear();
|
screenclear();
|
||||||
early_ui = true;
|
|
||||||
TIME_MSG("initialized screen early for UI");
|
TIME_MSG("initialized screen early for UI");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -461,7 +454,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
setmouse(); // may start using the mouse
|
setmouse(); // may start using the mouse
|
||||||
|
|
||||||
if (exmode_active || early_ui) {
|
if (exmode_active || use_remote_ui || use_builtin_ui) {
|
||||||
// Don't clear the screen when starting in Ex mode, or when a UI might have
|
// Don't clear the screen when starting in Ex mode, or when a UI might have
|
||||||
// displayed messages.
|
// displayed messages.
|
||||||
redraw_later(VALID);
|
redraw_later(VALID);
|
||||||
|
|
Loading…
Reference in New Issue