From 7293b104cceba8649b32d61425eaa72926892787 Mon Sep 17 00:00:00 2001 From: EvilPudding Date: Mon, 11 Jun 2018 00:18:41 +0100 Subject: [PATCH] Fixed major issues. --- README.md | 16 +--- botbar.py | 63 ------------- nano.vim | 243 ------------------------------------------------- screenshot.png | Bin 19147 -> 0 bytes topbar.py | 12 --- 5 files changed, 5 insertions(+), 329 deletions(-) delete mode 100644 botbar.py delete mode 100644 nano.vim delete mode 100644 screenshot.png delete mode 100644 topbar.py diff --git a/README.md b/README.md index 970275c..36b25e0 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,13 @@ # vim-nano -Mighty nano inside a vim. I wrote this for a parody hackathon. +Is an abomination and thinking about it makes you lose brain cells. # Requirements -- neovim (termopen abused to replicate nano interface) -- python (2 or 3, doesn't matter) +- Rethink your life +- Therapy # Installation -Not yet packaged as a plugin, because you don't need a vimrc anyway. +Don't do it. -``` -$ git clone https://github.com/nims11/vim-nano.git -$ cd vim-nano/ -$ nvim -u nano.vim -``` - -![vim-nano in action](https://raw.githubusercontent.com/nims11/vim-nano/master/screenshot.png) +![regular vim in action](https://cdn-images-1.medium.com/max/2000/1*f2dGSYzu7HjZr8rxPfFTtg.png) diff --git a/botbar.py b/botbar.py deleted file mode 100644 index fa9c5e0..0000000 --- a/botbar.py +++ /dev/null @@ -1,63 +0,0 @@ -import os -import time -import sys -row1 = [ - ("^G", "Get Help"), - ("^O", "Write Out"), - ("^F", "Where Is"), - ("^K", "Cut Text"), - ("^J", "Justify"), - ("^C", "Cur Pos"), - ("^Y", "Prev Page"), - ("M-\\", "First Line"), - ("M-W", "WhereIs Next"), - ('^^', "Mark Text"), - ("M-}", "Indent Text"), -] -row2 = [ - ("^X", "Exit"), - ("^R", "Read File"), - ("^\\", "Replace"), - ("^U", "Uncut Text"), - ("^T", "To Spell"), - ("^_", "Go To Line"), - ("^V", "Next Page"), - ("M-/", "Last Line"), - ("M-]", "To Bracket"), - ("M-C", "Copy Text"), - ("M-{", "Unindent Text"), -] -def generate(cols): - str1, str2 = '', '' - elt_width = max(15, cols//len(row1)) - cnt = 0 - for (k1, v1), (k2, v2) in zip(row1, row2): - cur_str1 = '\033[7m%s\033[0m %s ' % (k1, v1) - cur_str2 = '\033[7m%s\033[0m %s ' % (k2, v2) - cnt += 8 - while len(cur_str1) - 8 < elt_width: - cur_str1 += ' ' - while len(cur_str2) - 8 < elt_width: - cur_str2 += ' ' - if len(cur_str1) - 8 > elt_width: - cur_str1 = cur_str1[:elt_width+8] - if len(cur_str2) - 8 > elt_width and k2 != row2[-1][0]: - cur_str2 = cur_str2[:elt_width+8] - str1 += cur_str1 - str2 += cur_str2 - if len(str1) - cnt >= cols or len(str2) - cnt >= cols: - str1 = str1[:cols+cnt] - str2 = str2[:cols+cnt] - return str1 +'\n'+ str2 + '\n' - - return str1 +'\n'+ str2+'\n' - -prev_cols = -1 -while True: - _, cols = os.popen('stty size', 'r').read().split() - cols = int(cols) - 4 - if cols != prev_cols: - sys.stdout.write(generate(cols)) - sys.stdout.flush() - prev_cols = cols - time.sleep(0.3) diff --git a/nano.vim b/nano.vim deleted file mode 100644 index 6a7d9aa..0000000 --- a/nano.vim +++ /dev/null @@ -1,243 +0,0 @@ -let s:hidden_all = 1 -set noshowmode -set noruler -set laststatus=0 -set noshowcmd -set hlsearch! - -highlight EndOfBuffer ctermfg=black ctermbg=black -set shortmess+=I -highlight StatusLine ctermfg=black ctermbg=black cterm=NONE -highlight StatusLineNC ctermfg=black ctermbg=black cterm=NONE - - -function! DrawLayout() - " Top bar buffer - split - let s:path = expand(':p:h') - enew - resize 1 - call termopen('python '.s:path.'/topbar.py') - - " File display buffer - wincmd j - if @% == "" - enew - endif - - " Bottom bar buffer - split - wincmd j - resize 2 - enew - call termopen('python '.s:path.'/botbar.py') - - " Go back to file display buffer - wincmd k -endfunction - -" Trying to draw earlier messes things up -autocmd VimEnter * call DrawLayout() - - -" Restore input -function! RestoreInput() - startinsert - redraw -endfunction - - -" Handle resize -function! Resize() - wincmd j - resize 2 - wincmd k - - wincmd k - resize 1 - wincmd j -endfunction - -autocmd VimResized * call Resize() - - -" Disable command key -inoremap - - -function! ForceExit() - qa! -endfunction - - -function! PromptSave() - if @% != "" - write - return 1 - endif - let l:name = input('File Name to Write: ') - if (l:name == "") - return 0 - else - execute "write! ".l:name - return 1 - endif -endfunction -" Save file -nnoremap :call PromptSave() -inoremap :call PromptSave() - - -function! OpenFile() - let l:name = input('File to insert [from ./]: ') - if (l:name == "") - else - execute "read ".l:name - endif -endfunction -" Read file -nnoremap :call OpenFile() -inoremap :call OpenFile() - - -function! Exit() - if &mod - call inputsave() - let name = confirm('Save modified buffer? (Answering "No" will DISCARD changes.) ', "Yes\nNo\nCancel") - if (name==3) - elseif (name == 2) - call ForceExit() - else - if PromptSave() == 1 - call ForceExit() - else - endif - endif - - else - call ForceExit() - endif -endfunction -" Exit app -nnoremap :call Exit() -inoremap :call Exit() - - -function! SearchFile() - let l:name = input('Search: ') - if (name == "") - else - call feedkeys("\\/".name."\") - endif -endfunction -" Search file -nnoremap :call SearchFile() -inoremap :call SearchFile() - - -function! ShowInfo() - let curline = line('.') - let totalline = line('$') - let curcol = col('.') - let totalcol = col('$') - let lineperc = 100 * curline / totalline - let colperc = 100 * curcol / totalcol - echo "[ line ". curline . "/". totalline ." (".lineperc."%), col ".curcol. "/".totalcol." (".colperc."%) ]" -endfunction -" Show cursor info -nnoremap :call ShowInfo() -inoremap :call ShowInfo() - - -function! GotoLine() - let name = input('Enter line number, column number: ') - if (name == "") - else - let newlist = split(name, "[ ,]") - let cnt = 0 - let r = line(".") - let c = col(".") - for i in newlist - if i != "" - if cnt == 0 - let r = i - elseif cnt == 1 - let c = i - endif - endif - let cnt += 1 - endfor - call cursor(r, c) - endif -endfunction -" Goto line, col -nnoremap :call GotoLine() -inoremap :call GotoLine() - - -" Page up -nnoremap -inoremap - - -" Page down -nnoremap -inoremap - - -function! FirstLine() - call feedkeys("\\gg") -endfunction - -function! LastLine() - call feedkeys("\\G") -endfunction -" First Line -nnoremap :call FirstLine() -inoremap :call FirstLine() -" Last Line -nnoremap :call LastLine() -inoremap :call LastLine() - - -" Search forward -inoremap n - - -" Match parenthesis -inoremap % - - -function! VisualMode() - call feedkeys("\\v") -endfunction -" Mark Text -nnoremap :call VisualMode() -inoremap :call VisualMode() - - -" Copy Text -vnoremap y - - -" Indent -inoremap >> -inoremap << - - -" Justify -inoremap gqk - - -" Col nav -inoremap l -inoremap h - - -" Word nav -inoremap b -inoremap w - - -" Start insert mode -startinsert diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 6d3593dd7c8864dac006615a1cdfe34a7125c258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19147 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 diff --git a/topbar.py b/topbar.py deleted file mode 100644 index 0b44f2b..0000000 --- a/topbar.py +++ /dev/null @@ -1,12 +0,0 @@ -import os -import time -import sys -while True: - _, cols = os.popen('stty size', 'r').read().split() - cols = int(cols) - prefix = '\r\033[7m GNU nano 6.6.6' - suffix = '' - output = prefix + ' '*(cols - (len(prefix)-5 + len(suffix))) + suffix - sys.stdout.write(output) - sys.stdout.flush() - time.sleep(1)