mirror of
https://github.com/zyedidia/micro.git
synced 2026-02-21 06:20:32 +09:00
search: Only update lastSearch on ENTER
This has a few effects: - `lastSearch` doesn't get overriden with partial searches unnecessarily, which matches the behaviour of vim/emacs etc. - Selecting a word, then pressing C-c C-f ENTER works better as you can now use C-n and C-p to jump to more occurrences of what you just searched for. Without this C-n would jump to what you searched for *previously*. - `lastSearch` will now be updated even if the search did not match - again, this matches the behaviour of vim/emacs.
This commit is contained in:
@@ -64,7 +64,12 @@ func HandleSearchEvent(event tcell.Event, v *View) {
|
||||
// Exit the search mode
|
||||
ExitSearch(v)
|
||||
return
|
||||
case tcell.KeyCtrlQ, tcell.KeyCtrlC, tcell.KeyEnter:
|
||||
case tcell.KeyEnter:
|
||||
// If the user has pressed Enter, they want this to be the lastSearch
|
||||
lastSearch = messenger.response
|
||||
EndSearch()
|
||||
return
|
||||
case tcell.KeyCtrlQ, tcell.KeyCtrlC:
|
||||
// Done
|
||||
EndSearch()
|
||||
return
|
||||
@@ -179,9 +184,7 @@ func Search(searchStr string, v *View, down bool) {
|
||||
found = searchUp(r, v, v.Buf.End(), searchStart)
|
||||
}
|
||||
}
|
||||
if found {
|
||||
lastSearch = searchStr
|
||||
} else {
|
||||
if !found {
|
||||
v.Cursor.ResetSelection()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user