Merge remote-tracking branch 'krobelus/history-in-mappings'
This commit is contained in:
commit
31e9fc3cef
|
@ -18,6 +18,8 @@ released versions.
|
||||||
* Prompt history registers `%reg{colon}`, `%reg{slash}` and `%reg{pipe}` now
|
* Prompt history registers `%reg{colon}`, `%reg{slash}` and `%reg{pipe}` now
|
||||||
have reverse chronological order
|
have reverse chronological order
|
||||||
|
|
||||||
|
* Executing user mode mappings no longer adds to prompt history registers by default.
|
||||||
|
|
||||||
== Kakoune 2021.11.07
|
== Kakoune 2021.11.07
|
||||||
|
|
||||||
* Support for curly and separately colored underlines (undocumented in 2021.10.28)
|
* Support for curly and separately colored underlines (undocumented in 2021.10.28)
|
||||||
|
|
|
@ -59,20 +59,16 @@ It's common to use a normal-mode or user-mode mapping to trigger a command,
|
||||||
like this:
|
like this:
|
||||||
|
|
||||||
----
|
----
|
||||||
map global user n ': make-next-error<ret>'
|
map global user n :make-next-error<ret>
|
||||||
----
|
----
|
||||||
|
|
||||||
Note the space between the `:` and the command. This prevents Kakoune from
|
|
||||||
adding this command to the prompt history, so the user won't have to scroll
|
|
||||||
past it to review commands they actually typed.
|
|
||||||
|
|
||||||
If you make a normal-mode mapping, you can prefix it with a count or a register
|
If you make a normal-mode mapping, you can prefix it with a count or a register
|
||||||
name like any other normal-mode key. You can forward this information to the
|
name like any other normal-mode key. You can forward this information to the
|
||||||
command you invoke with the `%val{count}` and `%val{register}` expansions
|
command you invoke with the `%val{count}` and `%val{register}` expansions
|
||||||
(See <<expansions#`:doc expansions`>>). For example:
|
(See <<expansions#`:doc expansions`>>). For example:
|
||||||
|
|
||||||
----
|
----
|
||||||
map global normal = ': echo Got count %val{count} and reg %val{register}<ret>'
|
map global normal = ':echo Got count %val{count} and reg %val{register}<ret>'
|
||||||
----
|
----
|
||||||
|
|
||||||
== Mappable keys
|
== Mappable keys
|
||||||
|
|
|
@ -4,7 +4,7 @@ hook global BufCreate .*\.(diff|patch) %{
|
||||||
|
|
||||||
hook global WinSetOption filetype=diff %{
|
hook global WinSetOption filetype=diff %{
|
||||||
require-module diff
|
require-module diff
|
||||||
map buffer normal <ret> %{: diff-jump<ret>}
|
map buffer normal <ret> :diff-jump<ret>
|
||||||
}
|
}
|
||||||
|
|
||||||
hook -group diff-highlight global WinSetOption filetype=diff %{
|
hook -group diff-highlight global WinSetOption filetype=diff %{
|
||||||
|
|
|
@ -4,9 +4,9 @@ hook global BufCreate .+\.eml %{
|
||||||
|
|
||||||
hook global WinSetOption filetype=mail %{
|
hook global WinSetOption filetype=mail %{
|
||||||
require-module mail
|
require-module mail
|
||||||
map buffer normal <ret> %{: diff-jump<ret>}
|
map buffer normal <ret> :diff-jump<ret>
|
||||||
hook -once -always window WinSetOption filetype=.* %{
|
hook -once -always window WinSetOption filetype=.* %{
|
||||||
unmap buffer normal <ret> %{: diff-jump<ret>}
|
unmap buffer normal <ret> :diff-jump<ret>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ define-command -params 1 -hidden doc-render %{
|
||||||
set-option buffer readonly true
|
set-option buffer readonly true
|
||||||
add-highlighter buffer/ ranges doc_render_ranges
|
add-highlighter buffer/ ranges doc_render_ranges
|
||||||
add-highlighter buffer/ wrap -word -indent
|
add-highlighter buffer/ wrap -word -indent
|
||||||
map buffer normal <ret> ': doc-follow-link<ret>'
|
map buffer normal <ret> :doc-follow-link<ret>
|
||||||
}
|
}
|
||||||
|
|
||||||
define-command -params 0..2 \
|
define-command -params 0..2 \
|
||||||
|
|
|
@ -104,8 +104,8 @@ define-command -params 1.. \
|
||||||
# We need to unmap in case an existing buffer changes type,
|
# We need to unmap in case an existing buffer changes type,
|
||||||
# for example if the user runs "git show" and "git status".
|
# for example if the user runs "git show" and "git status".
|
||||||
map_diff_goto_source=$([ -n "${map_diff_goto_source}" ] \
|
map_diff_goto_source=$([ -n "${map_diff_goto_source}" ] \
|
||||||
&& printf %s "map buffer normal <ret> %[: git-diff-goto-source<ret>] -docstring 'Jump to source from git diff'" \
|
&& printf %s "map buffer normal <ret> :git-diff-goto-source<ret> -docstring 'Jump to source from git diff'" \
|
||||||
|| printf %s "unmap buffer normal <ret> %[: git-diff-goto-source<ret>]")
|
|| printf %s "unmap buffer normal <ret> :git-diff-goto-source<ret>")
|
||||||
|
|
||||||
printf %s "evaluate-commands -try-client '$kak_opt_docsclient' %{
|
printf %s "evaluate-commands -try-client '$kak_opt_docsclient' %{
|
||||||
edit! -fifo ${output} *git*
|
edit! -fifo ${output} *git*
|
||||||
|
|
|
@ -14,7 +14,7 @@ hook -group man-highlight global WinSetOption filetype=man %{
|
||||||
# References to other manpages
|
# References to other manpages
|
||||||
add-highlighter window/man-highlight/ regex [-a-zA-Z0-9_.]+\([a-z0-9]+\) 0:header
|
add-highlighter window/man-highlight/ regex [-a-zA-Z0-9_.]+\([a-z0-9]+\) 0:header
|
||||||
|
|
||||||
map window normal <ret> ': man-jump<ret>'
|
map window normal <ret> :man-jump<ret>
|
||||||
|
|
||||||
hook -once -always window WinSetOption filetype=.* %{
|
hook -once -always window WinSetOption filetype=.* %{
|
||||||
remove-highlighter window/man-highlight
|
remove-highlighter window/man-highlight
|
||||||
|
@ -141,7 +141,7 @@ man-jump %{
|
||||||
# Suggested keymaps for a user mode
|
# Suggested keymaps for a user mode
|
||||||
declare-user-mode man
|
declare-user-mode man
|
||||||
|
|
||||||
map global man 'g' -docstring 'Jump to a man page using selected man page link' ': man-jump<ret>'
|
map global man 'g' -docstring 'Jump to a man page using selected man page link' :man-jump<ret>
|
||||||
map global man 'j' -docstring 'Go to next man page link' ': man-link-next<ret>'
|
map global man 'j' -docstring 'Go to next man page link' :man-link-next<ret>
|
||||||
map global man 'k' -docstring 'Go to previous man page link' ': man-link-prev<ret>'
|
map global man 'k' -docstring 'Go to previous man page link' :man-link-prev<ret>
|
||||||
map global man 'm' -docstring 'Look up a man page' ':man<space>'
|
map global man 'm' -docstring 'Look up a man page' :man<space>
|
||||||
|
|
|
@ -2621,6 +2621,7 @@ void enter_user_mode(Context& context, String mode_name, KeymapMode mode, bool l
|
||||||
|
|
||||||
auto& mapping = context.keymaps().get_mapping(key, mode);
|
auto& mapping = context.keymaps().get_mapping(key, mode);
|
||||||
ScopedSetBool disable_keymaps(context.keymaps_disabled());
|
ScopedSetBool disable_keymaps(context.keymaps_disabled());
|
||||||
|
ScopedSetBool disable_history(context.history_disabled());
|
||||||
|
|
||||||
InputHandler::ScopedForceNormal force_normal{context.input_handler(), {}};
|
InputHandler::ScopedForceNormal force_normal{context.input_handler(), {}};
|
||||||
|
|
||||||
|
|
|
@ -2014,6 +2014,7 @@ void exec_user_mappings(Context& context, NormalParams params)
|
||||||
|
|
||||||
auto& mapping = context.keymaps().get_mapping(key, KeymapMode::User);
|
auto& mapping = context.keymaps().get_mapping(key, KeymapMode::User);
|
||||||
ScopedSetBool disable_keymaps(context.keymaps_disabled());
|
ScopedSetBool disable_keymaps(context.keymaps_disabled());
|
||||||
|
ScopedSetBool disable_history(context.history_disabled());
|
||||||
|
|
||||||
InputHandler::ScopedForceNormal force_normal{context.input_handler(), params};
|
InputHandler::ScopedForceNormal force_normal{context.input_handler(), params};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user