def _execute_command(view: View, defx: Defx, context: Context) -> None: """ Execute the command. """ save_cwd = view._vim.call('getcwd') cd(view._vim, defx._cwd) command = context.args[0] if context.args else view._vim.call( 'input', 'Command: ', '', 'shellcmd') output = view._vim.call('system', command) if output: view.print_msg(output) cd(view._vim, save_cwd)
def _new_multiple_files(view: View, defx: Defx, context: Context) -> None: """ Create multiple files. """ candidate = view.get_cursor_candidate(context.cursor) if not candidate: return if candidate['is_opened_tree'] or candidate['is_root']: cwd = str(candidate['action__path']) else: cwd = str(Path(candidate['action__path']).parent) save_cwd = view._vim.call('getcwd') cd(view._vim, cwd) str_filenames: str = view._vim.call('input', 'Please input new filenames: ', '', 'file') cd(view._vim, save_cwd) if not str_filenames: return None for name in str_filenames.split(): is_dir = name[-1] == '/' filename = Path(cwd).joinpath(name) if filename.exists(): error(view._vim, f'{filename} already exists') continue if is_dir: filename.mkdir(parents=True) else: if not filename.parent.exists(): filename.parent.mkdir(parents=True) filename.touch() view.redraw(True) view.search_recursive(filename, defx._index)
def _change_vim_cwd(view: View, defx: Defx, context: Context) -> None: """ Change the current working directory. """ cd(view._vim, defx._cwd)
def cd(self, path: str) -> None: self._cwd = str(Path(self._cwd).joinpath(path)) if self._context.auto_cd and Path(path).is_dir(): cd(self._vim, path)