aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc/motion.txt
Commit message (Collapse)AuthorAge
* docs(help): specify h4 "function signature" format #42434masterJustin M. Keyes2 days
| | | | | | | | | | | | | | | | | | | | | Work towards enabling ["flow" layout](https://github.com/neovim/neovim/blob/9244da12e400ec0291450a5e9400d995e7a29b83/src/gen/gen_help_html.lua#L86-L88) in all `:help` files. Problem: The final boss of vimdoc pseudo-structure: Vim's quasi-headings on function signatures and excmd docs is visually distinctive but too inconsistent for a nice parse rule. Solution: - Define the quasi-heading format as an "h4" variant, specified at `:help help-tag-heading`. - For simplicity and predictability, it is defined as any line that ends with a help tag(s) preceded by 2 or more spaces (or 1 tab). - Update existing docs. - This one-time update has a lot of changes, but is very unlikely to conflict with ported Vim-patches because (1) Vim rarely adds new *excmds* that we want, and (2) *function* docs are auto-generated. ref https://github.com/neovim/tree-sitter-vimdoc/issues/110
* docs: cleanup invalid help sourceJustin M. Keyes3 days
| | | | | | | | | | Work towards enabling "flow" layout in most `:help` files. Since [tables are supported in help](https://github.com/neovim/tree-sitter-vimdoc#tables), it's now possible to render most help files as ["flow" layout](https://github.com/neovim/neovim/blob/9244da12e400ec0291450a5e9400d995e7a29b83/src/gen/gen_help_html.lua#L86-L88) instead of the legacy fixed-width layout. Besides [improved HTML rendering](https://github.com/neovim/neovim/pull/42381#discussion_r4285705739), flow layout will allow `:help` presentation-mode to un-hardwrap text blocks.
* docs: fix invalid vimdoc #42353Justin M. Keyes5 days
|
* docs: func/expr options, misc #41102Justin M. Keyes2026-08-01
|
* feat(marks): :marks completion, list extmarks #40743Justin M. Keyes2026-07-15
| | | | | | | | | Problem: - No UI for listing extmarks. - `:marks` doesn't support cmdline-completion. Solution: - Add completion and extmarks support to `:marks`. - Update `get_buf_local_marks` to include the ":" (prompt-buffer) mark.
* vim-patch:9.2.0640: the "%" command jumps to parens and braces inside ↵zeertzjq2026-06-14
| | | | | | | | | | | | | | | | | | | comments (#40229) Problem: The "%" command jumps to parens and braces inside comments, unlike the "=" operator (cindent), which ignores them. Solution: When 'comments' defines C-style comments and "%" is not in 'cpoptions', skip matching parens inside such comments, except when the cursor is inside a comment so a match there can still be found. fixes: vim/vim#20329 related: vim/vim#20111 closes: vim/vim#20491 https://github.com/vim/vim/commit/b8a109dcfb96f213328a966a7e38eb28da697229 Co-authored-by: Hirohito Higashi <h.east.727@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: misc #40126Justin M. Keyes2026-06-08
|
* docs: misc, custom text-object #39877Justin M. Keyes2026-05-20
| | | | | text-object-define is a pattern I found in tpope's plugins (e.g. https://github.com/tpope/vim-jdaddy) which shows an elegant way to define a text-object. (Any mistakes in the example are my fault.)
* feat(normal): lines textobject "il", "al" #39845Barrett Ruth2026-05-19
| | | | `al` to select the whole buffer linewise. `il` to select the current line without surrounding whitespace.
* vim-patch:9e456e5: runtime(doc): clarify the use of 'iskeyword' option valuezeertzjq2026-02-10
| | | | | | | | | | | In particular, also mention the difference between the regex atom \k and what Vim considers for a word character. closes: vim/vim#18688 https://github.com/vim/vim/commit/9e456e52df83f64075ce94c9a5adc43e221a6d3c Co-authored-by: Christian Brabandt <cb@256bit.org>
* docs(prompt): Lua example, adjust for multiline input #37121Phạm Bình An2025-12-30
|
* vim-patch:5427465: runtime(doc): Clean up file header whitespacezeertzjq2025-11-10
| | | | | | | | | | | | | - :retab! line 1 and line 4 (main page heading). - Use four columns whitespace before "by [Author]" in the user manual heading to match the reference manual formatting. - double space headings. closes: vim/vim#18648 https://github.com/vim/vim/commit/542746521ff8d111f33c3c8ff298ba58966c9acc Co-authored-by: Doug Kearns <dougkearns@gmail.com>
* vim-patch:partial:c58f91c: runtime(doc): Whitespace updates (#36160)zeertzjq2025-10-13
| | | | | | | | | | | | | | Use double sentence spacing and wrap lines at 'textwidth'. Code examples and tables were not wrapped unless this had already been done locally. closes: vim/vim#18453 https://github.com/vim/vim/commit/c58f91c035db09358c282f2a908e2aea4287785e Fix incorrect docs in :h ModeChanged. Cherry-pick :h bufnr() changes from patch 8.1.2080. Co-authored-by: Doug Kearns <dougkearns@gmail.com>
* docs: api, miscJustin M. Keyes2025-06-18
|
* feat(prompt): multiline prompt input #33371Shadman2025-06-17
| | | | | | | | | | | | | | Problem: Cannot enter multiline prompts in a buftype=prompt buffer. Solution: - Support shift+enter (`<s-enter>`) to start a new line in the prompt. - Pasting multiline text via OS paste, clipboard, "xp, etc. - A/I in editable region works as usual. - i/a/A/I outside of editable region moves cursor to end of current prompt. - Support undo/redo in prompt buffer. - Support o/O in prompt buffer. - Expose prompt location as `':` mark.
* vim-patch:df68419: runtime(doc): clarify the use of change marks when ↵Brahmajit Das2025-05-22
| | | | | | | | | writing a buffer (#34132) related: vim/vim#17008 https://github.com/vim/vim/commit/df68419ba0c911ff3b49c7f4835d9f29f0dd8f77 Co-authored-by: Christian Brabandt <cb@256bit.org>
* docs: miscJustin M. Keyes2025-03-17
|
* docs: OSC 133 shell config #32771Justin M. Keyes2025-03-07
|
* vim-patch:9.1.0942: a few typos were foundzeertzjq2024-12-18
| | | | | | | | | Problem: a few typos were found Solution: fix them (zeertzjq) closes: vim/vim#16232 https://github.com/vim/vim/commit/d32bf0a06762f9ad08334d67b4d7f235f87f9063
* vim-patch:0a4e57f: runtime(doc): fix a few minor errors from the last doc ↵zeertzjq2024-12-17
| | | | | | | | | | | | | | updates 1) move the section at :h inclusive-motion-selection-exclusive a few lines below, so that it doesn't live in between the 2 exceptions. 2) remove the tag :h :!-range. It's not accurate (because it is actually a filter) and this command is already described at :h :range! https://github.com/vim/vim/commit/0a4e57f44abc05033f839b4538efee8120f7d967 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:ed89206: runtime(doc): add a note about inclusive motions and ↵zeertzjq2024-12-15
| | | | | | | | | | exclusive selection related: vim/vim#16202 https://github.com/vim/vim/commit/ed89206efe404a94e8424ccfe03c978fd93470f1 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:fd4e47e: runtime(doc): clarify the effect of 'startofline' option ↵zeertzjq2024-10-07
| | | | | | | | | (#30701) fixes: vim/vim#15794 https://github.com/vim/vim/commit/fd4e47e06b77fa26cb38f057aba950449e1f47f6 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:partial:89872f5: runtime(doc): update formatting and syntaxzeertzjq2024-10-06
| | | | | | | | closes: vim/vim#15800 https://github.com/vim/vim/commit/89872f58a9938142417906fc3243257c67c0af9c Co-authored-by: Milly <milly.ca@gmail.com>
* vim-patch:9.1.0699: "dvgo" is not always an inclusive motion (#30173)zeertzjq2024-08-29
| | | | | | | | | | | | Problem: "dvgo" is not always an inclusive motion (Iain King-Speir) Solution: initialize the inclusive flag to false fixes: vim/vim#15580 closes: vim/vim#15582 https://github.com/vim/vim/commit/f8702aeb8ff85554d909901ae45b50c3d532bf70 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.1.0573: ex: no implicit print for single addresseszeertzjq2024-07-14
| | | | | | | | | | | | | | | | Problem: ex: no implicit print for single addresses Solution: explicitly print even during single addresses, as requested by POSIX (Mohamed Akram) See the POSIX behaviour here: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ex.html#tag_20_40_13_03 Section 6b closes: vim/vim#15230 https://github.com/vim/vim/commit/c25a7084e9ae1f78c28ddcbe1fa23374cfdf1e03 Co-authored-by: Mohamed Akram <mohd.akram@outlook.com>
* docs: various #25289Justin M. Keyes2024-01-18
| | | | | | Co-authored-by: Jongwook Choi <wookayin@gmail.com> Co-authored-by: Oliver Marriott <hello@omarriott.com> Co-authored-by: Benoit de Chezelles <bew@users.noreply.github.com> Co-authored-by: Jongwook Choi <wookayin@gmail.com>
* vim-patch:9.1.0007: can select empty inner text blockszeertzjq2024-01-06
| | | | | | | | | | | | | | | Problem: can select empty inner text blocks (laurentalacoque) Solution: make selecting empty inner text blocks an error textobjects: Make selecting inner empty blocks an error fixes: vim/vim#13514 closes: vim/vim#13523 https://github.com/vim/vim/commit/ad4d7f446dc6754bde212234d46f4849b520b6e0 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:65672ae1189e (#26767)zeertzjq2023-12-28
| | | | | | | | | | | | | runtime(doc): clarify behaviour of ]m and ]M motions In particular remove the sentence, that a missing '{' (for ]m) or '}' (for ]M) after the cursor is an error, since currently this is not treated as an error. fixes: vim/vim#13777 https://github.com/vim/vim/commit/65672ae1189e0638fb68856598b98a2b7ee2a0a8 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:02902b547bdb (#25406)zeertzjq2023-09-29
| | | | | | | runtime(doc): text-objects: document how escaped delimiters are handled https://github.com/vim/vim/commit/02902b547bdb3ba480a52c90dce742201241f224 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:a7aba6ca5033 (#25285)zeertzjq2023-09-21
| | | | | runtime(doc): format jumplist examples more consistently (vim/vim#13137) https://github.com/vim/vim/commit/a7aba6ca5033a85839d997d29d5ca88a1f2acf8f
* vim-patch:9.0.1921: not possible to use the jumplist like a stack (#25278)zeertzjq2023-09-21
| | | | | | | | | | | | | | | | | | | | | | | | Problem: not possible to use the jumplist like a stack Solution: Add the 'jumpoptions' setting to make the jumplist a stack. Add an option for using jumplist like tag stack related: vim/vim#7738 closes: vim/vim#13134 ported from NeoVim: - https://neovim.io/doc/user/motion.html#jumplist-stack - neovim/neovim@39094b3 - https://vi.stackexchange.com/questions/18344/how-to-change-jumplist-behavior Based on the feedback in the previous PR, it looks like many people like this option. https://github.com/vim/vim/commit/87018255e3ad0f4dfa03e20318836d24af721caf Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com> Co-authored-by: butwerenotthereyet <58348703+butwerenotthereyet@users.noreply.github.com>
* vim-patch:346ac1429c5a (#25239)zeertzjq2023-09-19
| | | | | | | | | runtime(doc): add help tag describing object-selection closes: vim/vim#13114 https://github.com/vim/vim/commit/346ac1429c5afb23bace295106aea1b305443435 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.0.1761: g<kEnd> behaves different from g<end>zeertzjq2023-08-21
| | | | | | | | | Problem: g<kEnd> behaves different from g<end> Solution: Make g<kEnd> behave like g<End> closes: vim/vim#12861 https://github.com/vim/vim/commit/654bdbbd329e7267051cc2eb496bc52b66053081
* vim-patch:9.0.1753: can't move to last non-blank charzeertzjq2023-08-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: can't move to last non-blank char Solution: Make g<end> behave like that Make it possible to move to last non-blank char on a line We can distinguish between g0 and g^ to move to the very first character and the first non-blank char. And while we can move to the last screen char, we cannot go to the last non-blank screen char. Since I think g$ is the more widely used and known movement command (and g<end> is synonymous to it) change the behaviour of g<end> to move to last non-screen char instead and don't have this be the same command as the g$ command anymore. If you want to keep the old behaviour, you can use: ``` nnoremap g<end> g$ ``` Add a test to verify the behaviour. closes: vim/vim#12593 https://github.com/vim/vim/commit/b5f6fe9ca2661d06bc0be839447ce1995450b9de Co-authored-by: Christian Brabandt <cb@256bit.org>
* docs: remove trailing spaces #24455ii142023-07-25
|
* docs(term.txt): reorder paragraphs about TUI input (#24367)zeertzjq2023-07-16
| | | | Make |tui-modifyOtherKeys| and |tui-csiu| tags appear at a better place. Also adapt the |<Tab>| help update from https://github.com/vim/vim/commit/dad4473f02e1fec86d43a2fc094536a4b27d3b25
* fix(docs): vimdoc syntax errorsJustin M. Keyes2023-06-26
| | | | | | | | | | | | | | | | Prepare for https://github.com/neovim/tree-sitter-vimdoc/pull/108 which improves `{arg}` highlighting in many common cases: vim.foo({bar}) vim.foo( {bar}) nvim_foo({bar}) nvim_foo({bar},{baz}) nvim_foo({bar}, {baz}) foo[{buf}] The tradeoff is that things like `"[{"` are flagged as parse errors. We could avoid if we drop support for `foo[{buf}]`, but that is rather common (see `builtin.txt`).
* fix(docs): vimdoc syntax errorsJustin M. Keyes2023-06-25
| | | | gen_help_html: truncate parse-error sample text
* docs: fix typos (#22353)zeertzjq2023-02-22
|
* docs: fix treesitter parsing errorsChristian Clason2023-01-01
|
* feat(docs): update parser, HTML gen #20720Justin M. Keyes2022-10-18
| | | | | | | | | | Note: although the tolerance in help_spec.lua increased, the actual error count with the new parser decreased by about 20%. The difference is that the old ignore_parse_error() ignored many more errors with the old parser. fix https://github.com/neovim/tree-sitter-vimdoc/issues/37 fix https://github.com/neovim/tree-sitter-vimdoc/issues/44 fix https://github.com/neovim/tree-sitter-vimdoc/issues/47
* vim-patch:9fbdbb814f4a (#20376)Christian Clason2022-09-28
| | | | | | | Update runtime files https://github.com/vim/vim/commit/9fbdbb814f4ad67a14979aba4a6a49800c2f1a99 Skip ftplugin/vim.vim (vim9script change) Drop indent/vim.vim and autoload/dist/vimindent.vim (vim9script rewrite)
* docs: fix typos (#20150)dundargoc2022-09-26
| | | | | | | Co-authored-by: Miguel Carneiro <mcarneiromorenas@gmail.com> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Raphael <glephunter@gmail.com> Co-authored-by: C.D. MacEachern <craig.daniel.maceachern@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* vim-patch:e1f3fd1d02e3 (#19796)Christian Clason2022-08-16
| | | | Update runtime files https://github.com/vim/vim/commit/e1f3fd1d02e3f5fe6d2b6d82687c6846b8e500f8
* feat(marks): restore viewport on jump #15831Javier Lopez2022-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ** Refactor Previously most functions used to "get" a mark returned a position, changed the line number and sometimes changed even the current buffer. Now functions return a {x}fmark_T making calling context aware whether the mark is in another buffer without arcane casting. A new function is provided for switching to the mark buffer and returning a flag style Enum to convey what happen in the movement. If the cursor changed, line, columns, if it changed buffer, etc. The function to get named mark was split into multiple functions. - mark_get() -> fmark_T - mark_get_global() -> xfmark_T - mark_get_local() -> fmark_T - mark_get_motion() -> fmark_T - mark_get_visual() -> fmark_T Functions that manage the changelist and jumplist were also modified to return mark types. - get_jumplist -> fmark_T - get_changelist -> fmark_T The refactor is also seen mainly on normal.c, where all the mark movement has been siphoned through one function nv_gomark, while the other functions handle getting the mark and setting their movement flags. To handle whether context marks should be left, etc. ** Mark View While doing the refactor the concept of a mark view was also implemented: The view of a mark currently implemented as the number of lines between the mark position on creation and the window topline. This allows for moving not only back to the position of a mark but having the window look similar to when the mark was defined. This is done by carrying and extra element in the fmark_T struct, which can be extended later to also restore horizontal shift. *** User space features 1. There's a new option, jumpoptions+=view enables the mark view restoring automatically when using the jumplist, changelist, alternate-file and mark motions. <C-O> <C-I> g; g, <C-^> '[mark] `[mark] ** Limitations - The view information is not saved in shada. - Calls to get_mark should copy the value in the pointer since we are using pos_to_mark() to wrap and provide a homogeneous interfaces. This was also a limitation in the previous state of things.
* vim-patch:75ab590f8504 (#18170)Christian Clason2022-04-19
| | | | | | Update runtime files https://github.com/vim/vim/commit/75ab590f8504a8912ca0b8c58f6b897bb7a34f07 omit builtin.txt change to `expand()` (depends on 8.2.4726)
* vim-patch:8.2.4719: ">" marker sometimes not displayed in the jumplist (#18056)zeertzjq2022-04-10
| | | | | | | | Problem: ">" marker sometimes not displayed in the jumplist. Solution: If the buffer no longer exists show "-invalid-". (Christian Brabandt, closes vim/vim#10131, closes vim/vim#10100) https://github.com/vim/vim/commit/a0f659c76e22108880f857b8961422afc5ed8f5d Add a modeline to test_jumplist.vim
* vim-patch:c51cf0329809 (#17530)Christian Clason2022-02-27
| | | | Update runtime files. https://github.com/vim/vim/commit/c51cf0329809c7ae946c59d6f56699227efc9d1b
* vim-patch:4d8f476176ea (#15612)Christian Clason2021-09-10
| | | | | | | | | | * vim-patch:4d8f476176ea Update runtime files https://github.com/vim/vim/commit/4d8f476176eadfc745bcb8e143460029048f858d skip nsis/README.txt skip doc/vim9.txt skip src/nvim/po/it.po
* vim-patch:partial 2346a6378483 (#15599)Christian Clason2021-09-09
| | | | | | | | | | | | Update runtime files https://github.com/vim/vim/commit/2346a6378483c9871016f9fc821ec5cbea638f13 omit doc/vim.man omit doc/vim9.txt omit doc/vimdiff.txt omit doc/vimdiff.man skip doc/eval.txt (missing patch 8.2.2324) skip doc/help.txt (missing patch 8.2.2344)