def incremental_search(): #{{{1 """ Provides incremental search within the __pad__ buffer. """ query = "" should_create_on_enter = False vim.command("echohl None") vim.command('echo ">> "') while True: raw_char = vim.eval("getchar()") if raw_char in ("13", "27"): if raw_char == "13" and should_create_on_enter: vim.command("bw") open_pad(first_line=query) vim.command("echohl None") vim.command("redraw!") break else: try: # if we can convert to an int, we have a regular key int(raw_char) # we check this way so we bring up an error on nr2char last_char = vim.eval("nr2char(" + raw_char + ")") query = query + last_char except: # if we don't, we have some special key keycode = unicode(raw_char, errors="ignore") if keycode == "kb": # backspace query = query[:-len(last_char)] vim.command("setlocal modifiable") pad_files = get_filelist(query) if pad_files != []: fill_list(pad_files, query != "") vim.command("setlocal nomodifiable") info = "" vim.command("echohl None") should_create_on_enter = False else: # we will create a new pad del vim.current.buffer[:] info = "[NEW] " vim.command("echohl WarningMsg") should_create_on_enter = True vim.command("redraw") vim.command('echo ">> ' + info + query + '"')
def incremental_search(): # {{{1 """ Provides incremental search within the __pad__ buffer. """ query = "" should_create_on_enter = False vim.command("echohl None") vim.command('echo ">> "') while True: raw_char = vim.eval("getchar()") if raw_char in ("13", "27"): if raw_char == "13" and should_create_on_enter: vim.command("bw") open_pad(first_line=query) vim.command("echohl None") vim.command("redraw!") break else: try: # if we can convert to an int, we have a regular key int(raw_char) # we bring up an error on nr2char last_char = vim.eval("nr2char(" + raw_char + ")") query = query + last_char except: # if we don't, we have some special key keycode = unicode(raw_char, errors="ignore") if keycode == "kb": # backspace query = query[:-len(last_char)] vim.command("setlocal modifiable") pad_files = get_filelist(query) if pad_files != []: fill_list(pad_files, query != "") vim.command("setlocal nomodifiable") info = "" vim.command("echohl None") should_create_on_enter = False else: # we will create a new pad del vim.current.buffer[:] info = "[NEW] " vim.command("echohl WarningMsg") should_create_on_enter = True vim.command("redraw") vim.command('echo ">> ' + info + query + '"')
def global_incremental_search(): # {{{1 """ Provides incremental search in normal mode without opening the list. """ query = "" should_create_on_enter = False vim.command("echohl None") vim.command('echo ">> "') while True: raw_char = vim.eval("getchar()") if raw_char in ("13", "27"): if raw_char == "13": if should_create_on_enter: open_pad(first_line=query) vim.command("echohl None") else: display(query, True) vim.command("redraw!") break else: try: # if we can convert to an int, we have a regular key int(raw_char) # we bring up an error on nr2char last_char = vim.eval("nr2char(" + raw_char + ")") query = query + last_char except: # if we don't, we have some special key keycode = unicode(raw_char, errors="ignore") if keycode == "kb": # backspace query = query[:-len(last_char)] pad_files = get_filelist(query) if pad_files != []: info = "" vim.command("echohl None") should_create_on_enter = False else: # we will create a new pad info = "[NEW] " vim.command("echohl WarningMsg") should_create_on_enter = True vim.command("redraw") vim.command('echo ">> ' + info + query + '"')
def edit_pad(): # {{{1 """ Opens the currently selected note in the __pad__ buffer. """ path = get_selected_path() vim.command("bd") open_pad(path=path)
def edit_pad(): #{{{1 """ Opens the currently selected note in the __pad__ buffer. """ path = join(get_save_dir(), vim.current.line.split(" @")[0]) vim.command("bd") open_pad(path=path)