def update_viewer(): linked_win, viewer_win = get_linked_viewer_wins() if linked_win is None or viewer_win is None: return viewer_width = int(vim.eval('winwidth({})'.format(viewer_win.number))) if viewer_width != 20: with window_context(viewer_win): cmd('vertical resize 20') viewer_line_start = viewer_win.buffer.vars.get('line_start', -1) viewer_line_end = viewer_win.buffer.vars.get('line_end', -1) line_start = line_end = None with window_context(linked_win): line_start = int(vim.eval('line("w0")')) - 1 line_end = int(vim.eval('line("w$")')) if line_start != viewer_line_start or line_end != viewer_line_end: lines = linked_win.buffer[line_start:line_end] viewer_win.buffer[:] = list(as_ascii(lines)) viewer_win.buffer.vars['line_start'] = line_start viewer_win.buffer.vars['line_end'] = line_end
def open_viewer(): linked_win, viewer_win = get_linked_viewer_wins() if viewer_win is None: cmd('rightbelow 20 vsplit', 'enew') viewer_win = vim.current.window win_id = linked_win.vars.get('hestrx_win_id', None) if win_id is None: win_id = next_win_id() linked_win.vars['hestrx_win_id'] = win_id viewer_win.vars['hestrx_linked_win'] = win_id viewer_win.options['list'] = False viewer_win.options['number'] = False viewer_win.options['relativenumber'] = False viewer_win.options['spell'] = False viewer_win.options['wrap'] = False buf = viewer_win.buffer buf.options['bufhidden'] = 'hide' buf.options['buftype'] = 'nofile' buf.options['swapfile'] = False buf.options['buflisted'] = False vim.current.window = linked_win update_viewer()
def set_bin(): buf = vim.current.buffer buf.options['buftype'] = '' del buf.vars['hestrx'] if 'hestrx_filetype' in buf.vars: cmd('setlocal filetype=' + buf.vars['hestrx_filetype'].decode('ascii')) del buf.vars['hestrx_filetype']
def set_hex(): buf = vim.current.buffer buf.options['buftype'] = 'acwrite' buf.vars['hestrx'] = True current_filetype = buf.options['filetype'] if current_filetype != 'shx': buf.vars['hestrx_filetype'] = current_filetype cmd('setlocal filetype=shx') if 'hestrx_write_hook' not in buf.vars: cmd('autocmd BufWriteCmd <buffer> pythonx hestrx_vim.save()') buf.vars['hestrx_write_hook'] = True
def write_vim(file_name): write_cmd = 'write{} {} {}'.format(('!' if vim.vvars['cmdbang'] else ''), vim.vvars['cmdarg'], file_name) cmd(write_cmd)
def close_viewer(): linked_win, viewer_win = get_linked_viewer_wins() if viewer_win is not None: del viewer_win.vars['hestrx_linked_win'] cmd('bdelete {}'.format(viewer_win.buffer.number))