bpstahlman / txtfmt

Txtfmt (The Vim Highlighter) : "Rich text" highlighting in Vim! (colors, underline, bold, italic, etc...)
MIT License
49 stars 2 forks source link

New Install but can't get it working #7

Closed pdoak closed 8 years ago

pdoak commented 8 years ago

I am using Neovim on Mac OSX 10.11.4.

I can't seem to get txtfmt to work at all. When issuing the command :MakeTestPage, I get the following error message:

global mapping already exists for '

What do I need to do to get this working

bpstahlman commented 8 years ago

I just installed neovim under Ubuntu, dropped the latest release of Txtfmt into ~/.config/nvim, and was able to run :MakeTestPage with no issues. Have you tried just creating a Txtfmt buffer without running MakeTestPage? E.g., open a scratch buffer and run... :set ft=txtfmt Is that single quote the end of the error message? I don't believe Txtfmt creates any mappings for the single-quote character. How is your localleader set?

Perhaps it would help if you could attach the output of :set and :map commands before any attempts to load Txtfmt. (You can use :redir to capture...)

bpstahlman commented 8 years ago

What version of Txtfmt and Neovim are you using? I pulled the nightly binary of Neovim (0.1.4-dev), and I downloaded Txtfmt version 3.0beta-1 from the Vim website. Did you get it from there or directly from Github? If the latter, did you pull from master or somewhere else?

pdoak commented 8 years ago

@bpstahlman I was using NVIM 0.1.3-dev but have now downloaded the latest version and am now using NVIM 0.1.4-dev and build d0b3dde from github of Txtfmt.

I can use the :MakeTestPage command without any errors appearing but I don't see any colours. Is there anything else that I can try?

Many thanks

Below is the output of my :set and :map commands. ` --- Options --- background=dark conceallevel=2 helplang=en linebreak relativenumber showtabline=2 undofile backup expandtab hidden lines=49 scroll=23 smartcase undolevels=5000 columns=140 foldlevel=99 nohlsearch number shiftwidth=2 noswapfile window=48 concealcursor=inc gdefault ignorecase pastetoggle= noshowmode tabstop=2 backupdir=~/.config/nvim/tmp/backup// complete=.,w,b,u,t,k directory=~/.config/nvim/tmp/swapfiles// foldopen=block,hor,insert,jump,mark,percent,quickfix,search,tag,undo foldtext=MyFoldText() grepprg=ag --nogroup --nocolor listchars=tab:▸ ,eol:¬,nbsp:_,trail:. omnifunc=syntaxcomplete#Complete runtimepath=~/.config/nvim,~/.config/nvim/plugins/deoplete.nvim/,~/.config/nvim/plugins/vim-airline/,~/.config/nvim/plugins/oceanic-next/,~/.config/nvim/plugins/rainbowparentheses.vim/,~/.config/nvim/plugins/Colorizer/,~/.config/nvim/plugins/indentLine/,~/.config/nvim/plugins/delimitMate/,~/.config/nvim/plugins/vim-coloresque/,~/.config/nvim/plugins/vim-signature/,~/.config/nvim/plugins/xterm-color-table.vim/,~/.config/nvim/plugins/txtfmt/,~/.config/nvim/plugins/neomake/,~/.config/nvim/plugins/clam.vim/,~/.config/nvim/plugins/vim-indentobject/,~/.config/nvim/plugins/vim-textobj-rubysymbol/,~/.config/nvim/plugins/vim-textobj-datetime/,~/.config/nvim/plugins/vim-textobj-entire/,~/.config/nvim/plugins/vim-textobj-function/,~/.config/nvim/plugins/vim-textobj-user/,~/.config/nvim/plugins/vim-textobj-underscore/,~/.config/nvim/plugins/vim-indent-guides/,~/.config/nvim/plugins/vim-textobj-rubyblock/,~/.config/nvim/plugins/vim-textobj-function-javascript/,~/.config/nvim/plugins/argtextobj.vim/,~/.config/nvim/plugins/vim-textob shortmess=filnxtToOI statusline=%!airline#statusline(1) tabline=%!airline#extensions#tabline#get() undodir=~/.config/nvim/tmp/undodir/xolox/vim-session/ whichwrap=b,s,<,>,h,l,[,] wildignore=.hg,.git,.svn,.aux,.out,.toc,.jpg,.bmp,.gif,.png,.jpeg,.o,.obj,.exe,.dll,.manifest,.spl,.sw?,_.DSStore,.luac,.pyc,.orig,log/__,node_modules/,target/,tmp/_,.rbc

v * "_y s * c n * :TmuxNavigateLeft ox * h x snipMateVisual s snipMateNextOrTrigger x * :call UltiSnips#SaveLastVisualSelection()gvs s * :call UltiSnips#ExpandSnippet() n * :TmuxNavigateDown o * j n * :TmuxNavigateUp ov * k s * :call UltiSnips#ListSnippets() n * :TmuxNavigateRight ox * l x * :call multiple_cursors#new("v", 0) n * :call multiple_cursors#new("n", 1) s * "_c

:noh :NERDTreeToggle v 9 TComment_9 no 9 TComment_9 v 8 TComment_8 no 8 TComment_8 v 7 TComment_7 no 7 TComment_7 v 6 TComment_6 no 6 TComment_6 v 5 TComment_5 no 5 TComment_5 v 4 TComment_4 no 4 TComment_4 v 3 TComment_3 no 3 TComment_3 v 2 TComment_2 no 2 TComment_2 v 1 TComment_1 no 1 TComment_1 ca TComment_ca cc TComment_cc s TComment_s n TComment_n a TComment_a b TComment_b i TComment_i r TComment_r TComment_ p TComment_p v TComment_ no TComment_ v \* za n \* za o % \* v:call 125_Match_wrapper('',1,'o') v % \* :call 125_Match_wrapper('',1,'v') m'gv`` n % \* :call 125_Match_wrapper('',1,'n') n '[ \* :call signature#mark#Goto("prev", "line", "alpha") n '] \* :call signature#mark#Goto("next", "line", "alpha") n ++ vip++ v ++ VMATH_YankAndAnalyse() n ,hp GitGutterPreviewHunk n ,hr GitGutterRevertHunk n ,hs GitGutterStageHunk ,_s TComment_,_s ,_n TComment_,_n ,_a TComment_,_a ,_b TComment_,_b ,_r TComment_,_r x ,_i TComment_,_i ,_ TComment_,_ ,_p TComment_,_p x ,__ TComment_,__ nos,__ TComment_,__ n ,ig IndentGuidesToggle n ,,w :StripEndOfFileWhiteSpace n ,w :StripTrailingWhitespaces n ,vs \* :call Myvimrc() n ,ve \* :tabedit $MYVIMRC n ,h3 \* :call UnderlineHeading(3) n ,h2 \* :call UnderlineHeading(2) n ,h1 \* :call UnderlineHeading(1) n ,m \* :MarkedOpen n ,gT TitlecaseLine v ,gt Titlecase n ,gt Titlecase n ,ga \* :BCommits n ,gl \* :Commits n ,/ \* :execute 'Ag ' . input('Ag/') n ,? \* :History n ,O \* :Tags n ,o \* :BTags n ,; \* :BLines n ,a \* :Buffers n , \* :Files n ,,n \* :Unite -auto-preview file/async:/Users/pdd/Dropbox/Notes/ n ,,b \* :Unite -auto-resize -buffer-name=buffers buffer file_mru n ,,l \* :Unite -auto-resize -buffer-name=line line n ,,s \* :Unite output:echo\ join(GetAllSnippets(),"\n") n ,,m \* :Unite -auto-resize -buffer-name=mappings mapping n ,,y \* :Unite -buffer-name=yanks history/yank n ,,e \* :Unite -buffer-name=recent file_mru n ,,f \* :Unite -auto-preview file file_rec/neovim buffer file_mru n ,,/ \* :Unite -no-quit -buffer-name=search grep:% n ,9 9gt n ,8 8gt n ,7 7gt n ,6 6gt n ,5 5gt n ,4 4gt n ,3 3gt n ,2 2gt n ,1 1gt n ,. \* :Lines n ,, :bnext n ,e \* :call 1_Synstack() v ,d \* "_d n ,d \* "_d n ,so \* :source % ,f \* :Autoformat n ,l :set list! n ,sp \* :setlocal spell! spelllang=en_gb n ,ss \* s n ,vv \* v n ,cn \* :let @_ = expand("%:t") n ,cf \* :let @\* = expand("%:~") n ,x \* :bn n ,z \* :bp n ,qo :copen n ,qc :cclose ,`ysiw` v ,{ c{"} v ,} c{ " } no ,{ ysiw{ no ,} ysiw} v ,] c["] v ,[ c[ " ] no ,[ ysiw[ no ,] ysiw] v ,) c(") v ,( c( " ) no ,) ysiw) no ,( ysiw( v ,' c'"' no ,' ysiw' v ," c""" no ," ysiw" v ,# c#{"} no ,# ysiw# n ,ow \* "_diwhp n ,yw \* yiww n ,ab :AgBuffer n ,af :AgFile n ,ag :Ag n ,sk :SplitjoinJoin n ,sj :SplitjoinSplit n ,b \* :ctrlpbuffer n ,t :term o / (easymotion-tn) nv / (easymotion-sn) s 0 29_yank_with_key("0") s 1 29_yank_with_key("1") s 2 29_yank_with_key("2") s 3 29_yank_with_key("3") s 4 29_yank_with_key("4") s 5 29_yank_with_key("5") s 6 29_yank_with_key("6") s 7 29_yank_with_key("7") s 8 29_yank_with_key("8") s 9 29_yank_with_key("9") n ; \* : n

100_putline(']p', 'Below')<'] n

100_putline('[p', 'Above')<'] v < 100_putline(']p', 'Below')='] n =P \* :call 100_putline('[p', 'Above')='] n >p \* :call 100_putline(']p', 'Below')>'] n >P \* :call 100_putline('[p', 'Above')>'] v > >gv v K \* :call SearchVisualSelectionWithAg() n K \* :call SearchWordWithAg() x P \* :call 29_paste_with_key("P", "v", v:register, v:count1) n P \* :call 29_paste_with_key("P", "n", v:register, v:count1) n Q \* :call Closewindoworkillbuffer() n S Sneak_S x S VSurround n Y \* y$ x Z Sneak_S o Z Sneak_S o [% \* v:call 125_MultiMatch("bW", "o") v [% [%m'gv` n [% * :call 125_MultiMatch("bW", "n") n [c GitGutterPrevHunk n [xx unimpaired_line_xml_encode x [x unimpaired_xml_encode n [x unimpaired_xml_encode n [uu unimpaired_line_url_encode x [u unimpaired_url_encode n [u unimpaired_url_encode n [yy unimpaired_line_string_encode x [y unimpaired_string_encode n [y unimpaired_string_encode n [p unimpairedPutAbove n [ov * :set virtualedit+=all n [ox * :set cursorline cursorcolumn n [ow * :setlocal wrap=100_statusbump() n [os * :setlocal spell=100_statusbump() n [or * :setlocal relativenumber=100_statusbump() n [on * :setlocal number=100_statusbump() n [ol * :setlocal list=100_statusbump() n [oi * :set ignorecase=100_statusbump() n [oh * :set hlsearch=100_statusbump() n [od * :diffthis n [ou * :setlocal cursorcolumn=100_statusbump() n [oc * :setlocal cursorline=100_statusbump() n [ob * :set background=light x [e unimpairedMoveSelectionUp n [e unimpairedMoveUp n [ unimpairedBlankUp o [n unimpairedContextPrevious n [n unimpairedContextPrevious n [o unimpairedOPrevious n [f unimpairedDirectoryPrevious n [T unimpairedTFirst n [t unimpairedTPrevious n [ unimpairedQPFile n [Q unimpairedQFirst n [q unimpairedQPrevious n [ unimpairedLPFile n [L unimpairedLFirst n [l unimpairedLPrevious n [B unimpairedBFirst n [b unimpairedBPrevious n [A unimpairedAFirst n [a unimpairedAPrevious n [= * :call signature#marker#Goto("prev", "any", v:count) n [- * :call signature#marker#Goto("prev", "same", v:count) n [` * :call signature#mark#Goto("prev", "spot", "pos") n [' * :call signature#mark#Goto("prev", "line", "pos") n [unite]g * :Unite -direction=botright -silent -buffer-name=git -start-insert menu:git n \gT TitlecaseLine v \gt Titlecase n \gt Titlecase n \9 9gt n \8 8gt n \7 7gt n \6 6gt n \5 5gt n \4 4gt n \3 3gt n \2 2gt n \1 1gt n \. :bprevious n \, :bnext n \t :term o ]% * v:call 125_MultiMatch("W", "o") v ]% ]%m'gv` n ]% \* :call 125_MultiMatch("W", "n") n ]c GitGutterNextHunk n ]xx unimpaired_line_xml_decode x ]x unimpaired_xml_decode n ]x unimpaired_xml_decode n ]uu unimpaired_line_url_decode x ]u unimpaired_url_decode n ]u unimpaired_url_decode n ]yy unimpaired_line_string_decode x ]y unimpaired_string_decode n ]y unimpaired_string_decode n ]p unimpairedPutBelow n ]ov \* :set virtualedit-=all n ]ox \* :set nocursorline nocursorcolumn n ]ow \* :setlocal nowrap=100_statusbump() n ]os \* :setlocal nospell=100_statusbump() n ]or \* :setlocal norelativenumber=100_statusbump() n ]on \* :setlocal nonumber=100_statusbump() n ]ol \* :setlocal nolist=100_statusbump() n ]oi \* :set noignorecase=100_statusbump() n ]oh \* :set nohlsearch=100_statusbump() n ]od \* :diffoff n ]ou \* :setlocal nocursorcolumn=100_statusbump() n ]oc \* :setlocal nocursorline=100_statusbump() n ]ob \* :set background=dark x ]e unimpairedMoveSelectionDown n ]e unimpairedMoveDown n ] unimpairedBlankDown o ]n unimpairedContextNext n ]n unimpairedContextNext n ]o unimpairedONext n ]f unimpairedDirectoryNext n ]T unimpairedTLast n ]t unimpairedTNext n ] unimpairedQNFile n ]Q unimpairedQLast n ]q unimpairedQNext n ] unimpairedLNFile n ]L unimpairedLLast n ]l unimpairedLNext n ]B unimpairedBLast n ]b unimpairedBNext n ]A unimpairedALast n ]a unimpairedANext n ]= \* :call signature#marker#Goto("next", "any", v:count) n ]- \* :call signature#marker#Goto("next", "same", v:count) n ]` \* :call signature#mark#Goto("next", "spot", "pos") n ]' \* :call signature#mark#Goto("next", "line", "pos") s _ 29_yank_with_key("_") n `[ * :call signature#mark#Goto("prev", "spot", "alpha") n`] \* :call signature#mark#Goto("next", "spot", "alpha") v a% [%v]% o ac (textobj-comment-a) x ac (textobj-comment-a) o aC (textobj-comment-big-a) x aC (textobj-comment-big-a) o al (textobj-line-a) x al (textobj-line-a) o aa \* :call 65_MotionArgument(0, 0) v aa \* :call 65_MotionArgument(0, 1) o ar (textobj-rubyblock-a) x ar (textobj-rubyblock-a) o a_ (textobj-underscore-a) x a_ (textobj-underscore-a) o aF (textobj-function-A) x aF (textobj-function-A) o af (textobj-function-a) x af (textobj-function-a) o ae (textobj-entire-a) x ae (textobj-entire-a) o adz (textobj-datetime-tz) x adz (textobj-datetime-tz) o ada (textobj-datetime-auto) x ada (textobj-datetime-auto) o adt (textobj-datetime-time) x adt (textobj-datetime-time) o add (textobj-datetime-date) x add (textobj-datetime-date) o adf (textobj-datetime-full) x adf (textobj-datetime-full) o a: (textobj-rubysymbol-a) x a: (textobj-rubysymbol-a) v ai \* :call IndentTextObject(0)gv o ai \* :call IndentTextObject(0) s a 29_yank_with_key("a") s b 29_yank_with_key("b") n cov \* :set =(&virtualedit =~# "all") ? 'virtualedit-=all' : 'virtualedit+=all' n cox \* :set =&cursorline && &cursorcolumn ? 'nocursorline nocursorcolumn' : 'cursorline cursorcolumn' n cow \* :setlocal =100_toggle("wrap") n cos \* :setlocal =100_toggle("spell") n cor \* :setlocal =100_toggle("relativenumber") n con \* :setlocal =100_toggle("number") n col \* :setlocal =100_toggle("list") n coi \* :set =100_toggle("ignorecase") n coh \* :set =100_toggle("hlsearch") n cod \* :=&diff ? 'diffoff' : 'diffthis' n cou \* :setlocal =100_toggle("cursorcolumn") n coc \* :setlocal =100_toggle("cursorline") n cob \* :set background==&background == 'dark' ? 'light' : 'dark' n cS CSurround n cs Csurround s c 29_yank_with_key("c") x c \* 29_yank_with_key("c") n c \* 29_yank_with_key("c") n ds Dsurround n dm \* :call signature#utils#Remove(v:count) s d 29_yank_with_key("d") x d \* 29_yank_with_key("d") n d \* 29_yank_with_key("d") s e 29_yank_with_key("e") s f 29_yank_with_key("f") v gx NetrwBrowseXVis n gx NetrwBrowseX o g% \* v:call 125_Match_wrapper('',0,'o') v g% \* :call 125_Match_wrapper('',0,'v') m'gv` n g% * :call 125_Match_wrapper('',0,'n') n gS * :call 87_Mapping(g:splitjoin_split_mapping, "87_Split") n gJ * :call 87_Mapping(g:splitjoin_join_mapping, "87_Join") x g> TComment_Comment n g>b TComment_Commentb n g>c TComment_Commentc n g> TComment_Comment x g< TComment_Uncomment n gTComment_Uncommentb n gTComment_Uncommentc n g< TComment_Uncomment x gc TComment_gc n gcb TComment_gcb n gcc TComment_gcc n gc9c TComment_gc9c n gc9 TComment_gc9 n gc8c TComment_gc8c n gc8 TComment_gc8 n gc7c TComment_gc7c n gc7 TComment_gc7 n gc6c TComment_gc6c n gc6 TComment_gc6 n gc5c TComment_gc5c n gc5 TComment_gc5 n gc4c TComment_gc4c n gc4 TComment_gc4 n gc3c TComment_gc3c n gc3 TComment_gc3 n gc2c TComment_gc2c n gc2 TComment_gc2 n gc1c TComment_gc1c n gc1 TComment_gc1 n gc TComment_gc x gS VgSurround s g 29_yank_with_key("g") x gP * :call 29_paste_with_key("gP", "v", v:register, v:count1) n gP * :call 29_paste_with_key("gP", "n", v:register, v:count1) x gp * :call 29_paste_with_key("gp", "v", v:register, v:count1) n gp * :call 29_paste_with_key("gp", "n", v:register, v:count1) s h 29_yank_with_key("h") o ic TComment_ic v ic TComment_ic o il (textobj-line-i) x il (textobj-line-i) o ia * :call 65_MotionArgument(1, 0) v ia * :call 65_MotionArgument(1, 1) o ir (textobj-rubyblock-i) x ir (textobj-rubyblock-i) o i_ (textobj-underscore-i) x i_ (textobj-underscore-i) o if (textobj-function-i) x if (textobj-function-i) o iF (textobj-function-I) x iF (textobj-function-I) o ie (textobj-entire-i) x ie (textobj-entire-i) o idz (textobj-datetime-tz) x idz (textobj-datetime-tz) o ida (textobj-datetime-auto) x ida (textobj-datetime-auto) o idt (textobj-datetime-time) x idt (textobj-datetime-time) o idd (textobj-datetime-date) x idd (textobj-datetime-date) o idf (textobj-datetime-full) x idf (textobj-datetime-full) o i: (textobj-rubysymbol-i) x i: (textobj-rubysymbol-i) v ii * :call IndentTextObject(1)gv o ii * :call IndentTextObject(1) s i 29_yank_with_key("i") j * gj k * gk s l 29_yank_with_key("l") n m? * :call signature#marker#List() n m/ * :call signature#mark#List("buf_curr", v:count) n m * :call signature#marker#Purge() n m * :call signature#mark#Purge("all") n m- * :call signature#mark#Purge("line") n m. * :call signature#mark#ToggleAtLine() n m, * :call signature#mark#Toggle("next") n m * :call signature#utils#Input() s m 29_yank_with_key("m") s n 29_yank_with_key("n") noxn (easymotion-prev) s o 29_yank_with_key("o") v p * "_dp n p * :call 29_paste_with_key("p", "n", v:register, v:count1) s q 29_yank_with_key("q") s r 29_yank_with_key("r") x s Sneak_s n s Sneak_s s s 29_yank_with_key("s") s t 29_yank_with_key("t") s u 29_yank_with_key("u") s v 29_yank_with_key("v") s w 29_yank_with_key("w") s x 29_yank_with_key("x") n yO * :call 100_setup_paste()O n yo * :call 100_setup_paste()o n ySS YSsurround n ySs YSsurround n yss Yssurround n yS YSurround n ys Ysurround s y 29_yank_with_key("y") x y * 29_yank_with_key("y") n y * 29_yank_with_key("y") o z Sneak_s s z 29_yank_with_key("z") AirlineSelectNextTab * :call 156_jump_to_tab(v:count1) AirlineSelectPrevTab * :call 156_jump_to_tab(-v:count1) AirlineSelectTab9 * :call 156_select_tab(8) AirlineSelectTab8 * :call 156_select_tab(7) AirlineSelectTab7 * :call 156_select_tab(6) AirlineSelectTab6 * :call 156_select_tab(5) AirlineSelectTab5 * :call 156_select_tab(4) AirlineSelectTab4 * :call 156_select_tab(3) AirlineSelectTab3 * :call 156_select_tab(2) AirlineSelectTab2 * :call 156_select_tab(1) AirlineSelectTab1 * :call 156_select_tab(0) s snipMateBack v NetrwBrowseXVis * :call netrw#BrowseXVis() n NetrwBrowseX * :call netrw#BrowseX(expand((exists("g:netrw_gx")? g:netrw_gx : '')),netrw#CheckIfRemote()) x snipMateVisual * :call 115_grab_visual()gv"_c s snipMateBack * a=snipMate#BackwardsSnippet() s snipMateNextOrTrigger * a=snipMate#TriggerSnippet() s * c s * c n GitGutterPreviewHunk * :GitGutterPreviewHunk n GitGutterRevertHunk * :GitGutterRevertHunk n GitGutterStageHunk * :GitGutterStageHunk n GitGutterPrevHunk * &diff ? '[c' : ":\execute v:count1 . 'GitGutterPrevHunk'\" n GitGutterNextHunk * &diff ? ']c' : ":\execute v:count1 . 'GitGutterNextHunk'\" n 108_: * :=v:count ? v:count : '' n unimpaired_line_xml_decode * :call 100_Transform("xml_decode",v:count1) x unimpaired_xml_decode * :call 100_Transform("xml_decode",visualmode()) n unimpaired_xml_decode * :call 100_TransformSetup("xml_decode")g@ n unimpaired_line_xml_encode * :call 100_Transform("xml_encode",v:count1) x unimpaired_xml_encode * :call 100_Transform("xml_encode",visualmode()) n unimpaired_xml_encode * :call 100_TransformSetup("xml_encode")g@ n unimpaired_line_url_decode * :call 100_Transform("url_decode",v:count1) x unimpaired_url_decode * :call 100_Transform("url_decode",visualmode()) n unimpaired_url_decode * :call 100_TransformSetup("url_decode")g@ n unimpaired_line_url_encode * :call 100_Transform("url_encode",v:count1) x unimpaired_url_encode * :call 100_Transform("url_encode",visualmode()) n unimpaired_url_encode * :call 100_TransformSetup("url_encode")g@ n unimpaired_line_string_decode * :call 100_Transform("string_decode",v:count1) x unimpaired_string_decode * :call 100_Transform("string_decode",visualmode()) n unimpaired_string_decode * :call 100_TransformSetup("string_decode")g@ n unimpaired_line_string_encode * :call 100_Transform("string_encode",v:count1) x unimpaired_string_encode * :call 100_Transform("string_encode",visualmode()) n unimpaired_string_encode * :call 100_TransformSetup("string_encode")g@ n unimpairedPutBelow * :call 100_putline(']p', 'Below') n unimpairedPutAbove * :call 100_putline('[p', 'Above') n unimpairedPaste * :call 100_setup_paste() unimpairedMoveSelectionDown * :call 100_MoveSelectionDown(v:count1) unimpairedMoveSelectionUp * :call 100_MoveSelectionUp(v:count1) n unimpairedMoveDown * :call 100_Move('+',v:count1,'Down') n unimpairedMoveUp * :call 100_Move('--',v:count1,'Up') n unimpairedBlankDown * :call 100_BlankDown(v:count1) n unimpairedBlankUp * :call 100_BlankUp(v:count1) o unimpairedContextNext * :call 100_ContextMotion(0) o unimpairedContextPrevious * :call 100_ContextMotion(1) n unimpairedContextNext * :call 100_Context(0) n unimpairedContextPrevious * :call 100_Context(1) n unimpairedOPrevious unimpairedDirectoryPrevious:echohl WarningMSG|echo "[o is deprecated. Use [f"|echohl NONE n unimpairedONext unimpairedDirectoryNext:echohl WarningMSG|echo "]o is deprecated. Use ]f"|echohl NONE n unimpairedDirectoryPrevious * :edit =fnamemodify(100_fnameescape(100_FileByOffset(-v:count1)), ':.') n unimpairedDirectoryNext * :edit =fnamemodify(100_fnameescape(100_FileByOffset(v:count1)), ':.') n unimpairedTLast * :exe "".(v:count ? v:count : "")."tlast" n unimpairedTFirst * :exe "".(v:count ? v:count : "")."tfirst" n unimpairedTNext * :exe "".(v:count ? v:count : "")."tnext" n unimpairedTPrevious * :exe "".(v:count ? v:count : "")."tprevious" n unimpairedQNFile * :exe "".(v:count ? v:count : "")."cnfile"zv n unimpairedQPFile * :exe "".(v:count ? v:count : "")."cpfile"zv n unimpairedQLast * :exe "".(v:count ? v:count : "")."clast"zv n unimpairedQFirst * :exe "".(v:count ? v:count : "")."cfirst"zv n unimpairedQNext * :exe "".(v:count ? v:count : "")."cnext"zv n unimpairedQPrevious * :exe "".(v:count ? v:count : "")."cprevious"zv n unimpairedLNFile * :exe "".(v:count ? v:count : "")."lnfile"zv n unimpairedLPFile * :exe "".(v:count ? v:count : "")."lpfile"zv n unimpairedLLast * :exe "".(v:count ? v:count : "")."llast"zv n unimpairedLFirst * :exe "".(v:count ? v:count : "")."lfirst"zv n unimpairedLNext * :exe "".(v:count ? v:count : "")."lnext"zv n unimpairedLPrevious * :exe "".(v:count ? v:count : "")."lprevious"zv n unimpairedBLast * :exe "".(v:count ? v:count : "")."blast" n unimpairedBFirst * :exe "".(v:count ? v:count : "")."bfirst" n unimpairedBNext * :exe "".(v:count ? v:count : "")."bnext" n unimpairedBPrevious * :exe "".(v:count ? v:count : "")."bprevious" n unimpairedALast * :exe "".(v:count ? v:count : "")."last" n unimpairedAFirst * :exe "".(v:count ? v:count : "")."first" n unimpairedANext * :exe "".(v:count ? v:count : "")."next" n unimpairedAPrevious * :exe "".(v:count ? v:count : "")."previous" x VisualPasta * :call 90_VisualPasta() n AfterPasta * :call 90_NormalPasta('p', 'o') n BeforePasta * :call 90_NormalPasta('P', 'O') n SplitjoinJoin * :call 87_Join() n SplitjoinSplit * :call 87_Split() v CamelCaseMotion_ige * :call camelcasemotion#InnerMotion('ge',v:count1) v CamelCaseMotion_ie * :call camelcasemotion#InnerMotion('e',v:count1) v CamelCaseMotion_ib * :call camelcasemotion#InnerMotion('b',v:count1) v CamelCaseMotion_iw * :call camelcasemotion#InnerMotion('w',v:count1) o CamelCaseMotion_ige * :call camelcasemotion#InnerMotion('ge',v:count1) o CamelCaseMotion_ie * :call camelcasemotion#InnerMotion('e',v:count1) o CamelCaseMotion_ib * :call camelcasemotion#InnerMotion('b',v:count1) o CamelCaseMotion_iw * :call camelcasemotion#InnerMotion('w',v:count1) v CamelCaseMotion_ge * :call camelcasemotion#Motion('ge',v:count1,'v') v CamelCaseMotion_e * :call camelcasemotion#Motion('e',v:count1,'v') v CamelCaseMotion_b * :call camelcasemotion#Motion('b',v:count1,'v') v CamelCaseMotion_w * :call camelcasemotion#Motion('w',v:count1,'v') o CamelCaseMotion_ge * :call camelcasemotion#Motion('ge',v:count1,'o') o CamelCaseMotion_e * :call camelcasemotion#Motion('e',v:count1,'o') o CamelCaseMotion_b * :call camelcasemotion#Motion('b',v:count1,'o') o CamelCaseMotion_w * :call camelcasemotion#Motion('w',v:count1,'o') n CamelCaseMotion_ge * :call camelcasemotion#Motion('ge',v:count1,'n') n CamelCaseMotion_e * :call camelcasemotion#Motion('e',v:count1,'n') n CamelCaseMotion_b * :call camelcasemotion#Motion('b',v:count1,'n') n CamelCaseMotion_w * :call camelcasemotion#Motion('w',v:count1,'n') 84_SchleppDup * :call 84_SchleppDup() 84_SchleppDupRight * :call 84_SchleppDup("Right") 84_SchleppDupLeft * :call 84_SchleppDup("Left") 84_SchleppDupDown * :call 84_SchleppDup("Down") 84_SchleppDupUp * :call 84_SchleppDup("Up") SchleppDup & 84_SchleppDup SchleppDupRight & 84_SchleppDupRight SchleppDupLeft & 84_SchleppDupLeft SchleppDupDown & 84_SchleppDupDown SchleppDupUp & 84_SchleppDupUp 84_SchleppToggleReindent * :call 84_SchleppToggleReindent() 84_SchleppIndentDown * :call 84_Schlepp("Down", 1) 84_SchleppIndentUp * :call 84_Schlepp("Up", 1) SchleppToggleReindent & 84_SchleppToggleReindent SchleppIndentDown & 84_SchleppIndentDown SchleppIndentUp & 84_SchleppIndentUp 84_SchleppRight * :call 84_Schlepp("Right") 84_SchleppLeft * :call 84_Schlepp("Left") 84_SchleppDown * :call 84_Schlepp("Down") 84_SchleppUp * :call 84_Schlepp("Up") SchleppRight & 84_SchleppRight SchleppLeft & 84_SchleppLeft SchleppDown & 84_SchleppDown SchleppUp & 84_SchleppUp n TitlecaseLine * :set opfunc=83_titlecase|exe 'norm! 'v:count1.'g@_' n Titlecase * :set opfunc=83_titlecaseg@ x Titlecase * : call 83_titlecase(visualmode(),visualmode() ==# 'V' ? 1 : 0) x VSneakPrevious SneakPrevious x VSneakNext SneakNext x VSneakBackward Sneak_S x VSneakForward Sneak_s n SneakBackward Sneak_S n SneakForward Sneak_s o (SneakStreakBackward) * :call sneak#wrap(v:operator, 2, 1, 2, 2) o (SneakStreak) * :call sneak#wrap(v:operator, 2, 0, 2, 2) x (SneakStreakBackward) * :call sneak#wrap(visualmode(), 2, 1, 2, 2) x (SneakStreak) * :call sneak#wrap(visualmode(), 2, 0, 2, 2) n (SneakStreakBackward) * :call sneak#wrap('', 2, 1, 2, 2) n (SneakStreak) * :call sneak#wrap('', 2, 0, 2, 2) o Sneak_T * :call sneak#wrap(v:operator, 1, 1, 0, 0) o Sneak_t * :call sneak#wrap(v:operator, 1, 0, 0, 0) x Sneak_T * :call sneak#wrap(visualmode(), 1, 1, 0, 0) x Sneak_t * :call sneak#wrap(visualmode(), 1, 0, 0, 0) n Sneak_T * :call sneak#wrap('', 1, 1, 0, 0) n Sneak_t * :call sneak#wrap('', 1, 0, 0, 0) o Sneak_F * :call sneak#wrap(v:operator, 1, 1, 1, 0) o Sneak_f * :call sneak#wrap(v:operator, 1, 0, 1, 0) x Sneak_F * :call sneak#wrap(visualmode(), 1, 1, 1, 0) x Sneak_f * :call sneak#wrap(visualmode(), 1, 0, 1, 0) n Sneak_F * :call sneak#wrap('', 1, 1, 1, 0) n Sneak_f * :call sneak#wrap('', 1, 0, 1, 0) o SneakPrevious * :call sneak#rpt(v:operator, 1) o SneakNext * :call sneak#rpt(v:operator, 0) x SneakPrevious * :call sneak#rpt(visualmode(), 1) x SneakNext * :call sneak#rpt(visualmode(), 0) n SneakPrevious * :call sneak#rpt('', 1) n SneakNext * :call sneak#rpt('', 0) o SneakRepeat * :call sneak#wrap(v:operator, sneak#util#getc(), sneak#util#getc(), sneak#util#getc(), sneak#util#getc()) o Sneak_S * :call sneak#wrap(v:operator, 2, 1, 2, 1) o Sneak_s * :call sneak#wrap(v:operator, 2, 0, 2, 1) x Sneak_S * :call sneak#wrap(visualmode(), 2, 1, 2, 1) x Sneak_s * :call sneak#wrap(visualmode(), 2, 0, 2, 1) n Sneak_S * :call sneak#wrap('', 2, 1, 2, 1) n Sneak_s * :call sneak#wrap('', 2, 0, 2, 1) n CommentaryUndo CommentaryCommentary n ChangeCommentary * c:call 81_textobject(1) o Commentary * :call 81_textobject(0) n CommentaryLine * :set opfunc=81_go|exe 'norm! 'v:count1.'g@_' n Commentary * :set opfunc=81_gog@ x Commentary * :call 81_go(line("'<"),line("'>")) n TComment_gc9c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc9cg@ n TComment_gc8c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc8cg@ n TComment_gc7c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc7cg@ n TComment_gc6c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc6cg@ n TComment_gc5c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc5cg@ n TComment_gc4c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc4cg@ n TComment_gc3c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc3cg@ n TComment_gc2c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc2cg@ n TComment_gc1c * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gc1cg@ v TComment_9 * :call tcomment#SetOption("count", 9) no TComment_9 * :call tcomment#SetOption("count", 9) v TComment_8 * :call tcomment#SetOption("count", 8) no TComment_8 * :call tcomment#SetOption("count", 8) v TComment_7 * :call tcomment#SetOption("count", 7) no TComment_7 * :call tcomment#SetOption("count", 7) v TComment_6 * :call tcomment#SetOption("count", 6) no TComment_6 * :call tcomment#SetOption("count", 6) v TComment_5 * :call tcomment#SetOption("count", 5) no TComment_5 * :call tcomment#SetOption("count", 5) v TComment_4 * :call tcomment#SetOption("count", 4) no TComment_4 * :call tcomment#SetOption("count", 4) v TComment_3 * :call tcomment#SetOption("count", 3) no TComment_3 * :call tcomment#SetOption("count", 3) v TComment_2 * :call tcomment#SetOption("count", 2) no TComment_2 * :call tcomment#SetOption("count", 2) v TComment_1 * :call tcomment#SetOption("count", 1) no TComment_1 * :call tcomment#SetOption("count", 1) n TComment_gc * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gcg@ x TComment_gc * :TCommentMaybeInline n TComment_gcb * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gcbg@ n TComment_gcc * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_gccg@$ TComment_ic * :call tcomment#TextObjectInlineComment() x TComment_Comment * :if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | '<,'>TCommentMaybeInline! n TComment_Commentb * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_Commentbg@ n TComment_Commentc * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_Commentcg@$ n TComment_Comment * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_Commentg@ x TComment_Uncomment * :if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | call tcomment#SetOption("mode_extra", "U") | '<,'>TCommentMaybeInline n TComment_Uncommentb * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_Uncommentbg@ n TComment_Uncommentc * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_Uncommentcg@$ n TComment_Uncomment * :call tcomment#ResetOption() | if v:count > 0 | call tcomment#SetOption("count", v:count) | endif | let w:tcommentPos = getpos(".") |set opfunc=TCommentOpFunc_Uncommentg@ TComment_,_s * :TCommentAs =&ft_ TComment_,_n * :TCommentAs =&ft TComment_,_a * :TCommentAs TComment_,_b * :TCommentBlock TComment_,_r * :TCommentRight x TComment_,_i * :TCommentInline TComment_,_ * :TComment TComment_,_p * vip:TComment x TComment_,__ * :TCommentMaybeInline nosTComment_,__ * :TComment TComment_ca * :call tcomment#SetOption("as", input("Comment as: ", &filetype, "customlist,tcomment#Complete")) TComment_cc * :call tcomment#SetOption("count", v:count1) TComment_s * :TCommentAs =&ft_ TComment_n * :TCommentAs =&ft TComment_a * :TCommentAs TComment_b * :TCommentBlock TComment_i * v:TCommentInline mode=I# TComment_r * :TCommentRight TComment_ * :TComment TComment_p * m`vip:TComment` v TComment_ \* :TCommentMaybeInline no TComment_ \* :TComment v VgSurround \* :call 79_opfunc(visualmode(),visualmode() ==# 'V' ? 0 : 1) v VSurround \* :call 79_opfunc(visualmode(),visualmode() ==# 'V' ? 1 : 0) n YSurround \* :set opfunc=79_opfunc2g@ n Ysurround \* :set opfunc=79_opfuncg@ n YSsurround \* :call 79_opfunc2(v:count1) n Yssurround \* :call 79_opfunc(v:count1) n CSurround \* :call 79_changesurround(1) n Csurround \* :call 79_changesurround() n Dsurround \* :call 79_dosurround(79_inputtarget()) n SurroundRepeat \* . o (fzf-maps-o) \* :call fzf#vim#maps('o', 70_w(0)) x (fzf-maps-x) \* :call fzf#vim#maps('x', 70_w(0)) n (fzf-maps-n) \* :call fzf#vim#maps('n', 70_w(0)) n MoveLineUp n MoveLineDown v MoveBlockUp v MoveBlockDown n MoveLineHalfPageUp \* :call 68_MoveLineHalfPageUp() n MoveLineHalfPageDown \* :call 68_MoveLineHalfPageDown() n MoveLineUp \* :call 68_MoveLineUp(1) n MoveLineDown \* :call 68_MoveLineDown(1) v MoveBlockHalfPageUp \* :call 68_MoveBlockHalfPageUp() v MoveBlockHalfPageDown \* :call 68_MoveBlockHalfPageDown() v MoveBlockUp \* :call 68_MoveBlockOneLineUp() v MoveBlockDown \* :call 68_MoveBlockOneLineDown() o (textobj-comment-i) \* :call g:__textobj_comment.do_by_function("select-i","-","o") v (textobj-comment-i) \* :call g:__textobj_comment.do_by_function("select-i","-","v") o (textobj-comment-a) \* :call g:__textobj_comment.do_by_function("select-a","-","o") v (textobj-comment-a) \* :call g:__textobj_comment.do_by_function("select-a","-","v") o (textobj-comment-big-a) \* :call g:__textobj_comment.do_by_function("select-a","big","o") v (textobj-comment-big-a) \* :call g:__textobj_comment.do_by_function("select-a","big","v") o (textobj-line-i) \* :call g:__textobj_line.do_by_function("select-i","-","o") v (textobj-line-i) \* :call g:__textobj_line.do_by_function("select-i","-","v") o (textobj-line-a) \* :call g:__textobj_line.do_by_function("select-a","-","o") v (textobj-line-a) \* :call g:__textobj_line.do_by_function("select-a","-","v") o (textobj-rubyblock-i) \* :call g:__textobj_rubyblock.do_by_function("select-i","-","o") v (textobj-rubyblock-i) \* :call g:__textobj_rubyblock.do_by_function("select-i","-","v") o (textobj-rubyblock-a) \* :call g:__textobj_rubyblock.do_by_function("select-a","-","o") v (textobj-rubyblock-a) \* :call g:__textobj_rubyblock.do_by_function("select-a","-","v") n IndentGuidesDisable & :IndentGuidesDisable n IndentGuidesEnable & :IndentGuidesEnable n IndentGuidesToggle & :IndentGuidesToggle o (textobj-underscore-i) \* :call g:__textobj_underscore.do_by_function("select-i","-","o") v (textobj-underscore-i) \* :call g:__textobj_underscore.do_by_function("select-i","-","v") o (textobj-underscore-a) \* :call g:__textobj_underscore.do_by_function("select-a","-","o") v (textobj-underscore-a) \* :call g:__textobj_underscore.do_by_function("select-a","-","v") o (textobj-function-i) \* :call g:__textobj_function.do_by_function("select","i","o") v (textobj-function-i) \* :call g:__textobj_function.do_by_function("select","i","v") o (textobj-function-A) \* :call g:__textobj_function.do_by_function("select","A","o") v (textobj-function-A) \* :call g:__textobj_function.do_by_function("select","A","v") o (textobj-function-I) \* :call g:__textobj_function.do_by_function("select","I","o") v (textobj-function-I) \* :call g:__textobj_function.do_by_function("select","I","v") o (textobj-function-a) \* :call g:__textobj_function.do_by_function("select","a","o") v (textobj-function-a) \* :call g:__textobj_function.do_by_function("select","a","v") o (textobj-entire-i) \* :call g:__textobj_entire.do_by_function("select-i","-","o") v (textobj-entire-i) \* :call g:__textobj_entire.do_by_function("select-i","-","v") o (textobj-entire-a) \* :call g:__textobj_entire.do_by_function("select-a","-","o") v (textobj-entire-a) \* :call g:__textobj_entire.do_by_function("select-a","-","v") o (textobj-datetime-tz) \* :call g:__textobj_datetime.do_by_pattern("select","tz","o") v (textobj-datetime-tz) \* :call g:__textobj_datetime.do_by_pattern("select","tz","v") o (textobj-datetime-auto) \* :call g:__textobj_datetime.do_by_pattern("select","auto","o") v (textobj-datetime-auto) \* :call g:__textobj_datetime.do_by_pattern("select","auto","v") o (textobj-datetime-time) \* :call g:__textobj_datetime.do_by_pattern("select","time","o") v (textobj-datetime-time) \* :call g:__textobj_datetime.do_by_pattern("select","time","v") o (textobj-datetime-date) \* :call g:__textobj_datetime.do_by_pattern("select","date","o") v (textobj-datetime-date) \* :call g:__textobj_datetime.do_by_pattern("select","date","v") o (textobj-datetime-full) \* :call g:__textobj_datetime.do_by_pattern("select","full","o") v (textobj-datetime-full) \* :call g:__textobj_datetime.do_by_pattern("select","full","v") o (textobj-rubysymbol-i) \* :call g:__textobj_rubysymbol.do_by_function("select-i","-","o") v (textobj-rubysymbol-i) \* :call g:__textobj_rubysymbol.do_by_function("select-i","-","v") o (textobj-rubysymbol-a) \* :call g:__textobj_rubysymbol.do_by_function("select-a","-","o") v (textobj-rubysymbol-a) \* :call g:__textobj_rubysymbol.do_by_function("select-a","-","v") n 57_ \* 57_ x ColorFgBg \* :ColorSwapFgBg n ColorFgBg \* :ColorSwapFgBg x ColorContrast \* :ColorContrast n ColorContrast \* :ColorContrast x Colorizer \* :ColorHighlight n Colorizer \* :ColorToggle v :Tabularize / n :Tabularize / \* g \* g \* gj \* gk n \* "*p x yankstack_substitute_newer_paste n yankstack_substitute_newer_paste x yankstack_substitute_older_paste n yankstack_substitute_older_paste x yankstack_after_paste \* :call 29_after_paste() n yankstack_after_paste \* :call 29_after_paste() x yankstack_substitute_newer_paste \* :call 29_substitute_paste(-v:count1, 'v') x yankstack_substitute_older_paste \* :call 29_substitute_paste(v:count1, 'v') n yankstack_substitute_newer_paste \* :call 29_substitute_paste(-v:count1, 'n') n yankstack_substitute_older_paste \* :call 29_substitute_paste(v:count1, 'n') o (easymotion- \* :call 3_lod_map('(easymotion-', ['vim-easymotion'], "") v (easymotion- \* :call 3_lod_map('(easymotion-', ['vim-easymotion'], "gv") n (easymotion- \* :call 3_lod_map('(easymotion-', ['vim-easymotion'], "") o Coerce \* :call 3_lod_map('Coerce', ['vim-abolish'], "") v Coerce \* :call 3_lod_map('Coerce', ['vim-abolish'], "gv") n Coerce \* :call 3_lod_map('Coerce', ['vim-abolish'], "") n \* :GundoToggle v :Tabularize / n :Tabularize / v schleppright v schleppleft v schleppdown v schleppup n \* :TmuxNavigatePrevious Error detected while processing function 119_CursorHoldUpdate: line 1: E121: Undefined variable: g:NERDTreeUpdateOnCursorHold Error detected while processing function 119_CursorHoldUpdate: line 1: E15: Invalid expression: g:NERDTreeUpdateOnCursorHold != 1 Error detected while processing function 119_CursorHoldUpdate: line 5: E121: Undefined variable: g:NERDTree Error detected while processing function 119_CursorHoldUpdate: line 5: E15: Invalid expression: !g:NERDTree.IsOpen() Error detected while processing function 119_CursorHoldUpdate: line 9: E94: No matching buffer for :NERDTreeRoot.refreshFlags() Error detected while processing function 119_CursorHoldUpdate: line 1: E121: Undefined variable: g:NERDTreeUpdateOnCursorHold Error detected while processing function 119_CursorHoldUpdate: line 1: E15: Invalid expression: g:NERDTreeUpdateOnCursorHold != 1 Error detected while processing function 119_CursorHoldUpdate: line 5: E121: Undefined variable: g:NERDTree Error detected while processing function 119_CursorHoldUpdate: line 5: E15: Invalid expression: !g:NERDTree.IsOpen() Error detected while processing function 119_CursorHoldUpdate: line 9: E94: No matching buffer for :NERDTreeRoot.refreshFlags() `

bpstahlman commented 8 years ago

A few quick questions...

  • Did you scroll down in the test page to verify that there were no colors? (I ask because the color/format table is usually several screens into the test page, so you probably wouldn't see any colors before scrolling down a bit.)
  • Is it only colors that are missing or formats (e.g., bold, italic, underline) too?
  • Are you certain that syntax highlighting is enabled? With regular Vim, syntax highlighting is off by default, as is filetype detection. To enable both, you need something like this in your vimrc:
filetype plugin indent on
syntax on
  • When you do scroll down, do you see any strange looking characters in the test page (in particular when you get to the "color/format table")?
  • If you run :syntax command, do you see a bunch of regions with names beginning with "Tf"? If so, do you see any colors in the output?

I've attached a few screenshots for comparison:

  1. good test page
  2. bad test page (what you'd see if syntax were disabled)
  3. output of syntax command

Good test page

test-page-good

Bad test page (syntax disabled)

test-page-bad

Output of syntax command

syn-output-good

pdoak commented 8 years ago

@bpstahlman in answer to your questions:

  • Yes, I scrolled down to the --color/format table-- screen shot 2016-04-24 at 22 31 08
  • nothing seems to work -Yes. I have filetype plugin indent on and syntax enable
  • No strange characters in the --color/format table-- or anywhere else
  • when I run :syntax, I do see regions starting with Tf but no colors screen shot 2016-04-24 at 22 33 19

Is there anything else I can try? Thank you for your help

bpstahlman commented 8 years ago

What does the output of :hi look like? It should look something like this: hilight

Also, what is the output of the following command, executed with the cursor on the word "color" in the first "Fg color 2" on the test page? echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name")

If that doesn't clear things up, it might be helpful if I could see the actual output of the :syn and :hi commands. You could redirect it to a file like this...

redir >syn-hi.out
syn
hi
redir END

...and either attach the file, or email to brettstahlman@gmail.com.

Thanks.

pdoak commented 8 years ago

@bpstahlman thanks for your continued help. The output of :hi is: screen shot 2016-04-25 at 07 59 56

The output of echo ... is `Tf0_bgclr_5_2

The output of :sun and :hi is in the attached file: syn-hi.txt

Thanks

bpstahlman commented 8 years ago

Ah... The syntax regions are being defined correctly. The problem is that Txtfmt is defining highlight groups appropriate to a color terminal, whereas you seem to be running a gui (according to the :hi output for the "airline*" groups). Txtfmt calls has('gui_running') to determine whether it should make gui or terminal-specific highlight definitions. So... Are you actually running a gui? If so, does has('gui_running') return 1 or 0? I would test on mine, but I don't currently have a gui version of neovim. I installed using Ubuntu package manager, which apparently installs a terminal-only build of neovim.

pdoak commented 8 years ago

Hmmm. I am not running a gui. has('gui_running') returns 0

bpstahlman commented 8 years ago

Very strange. I assumed you were running a gui because of (e.g.) the _airline_a_to_airlineb highlight definition: it defines only guifg and guibg colors (no ctermfg or ctermbg), yet the colors are clearly working. As a test, you might try replacing the has('gui_running') on lines 225 and 302 of txtfmt/syntax.vim with 1 to see whether forcing gui definitions fixes the issue. I will need to investigate to see whether neovim does something different with respect to cterm/gui highlight definitions...

pdoak commented 8 years ago

Replacing has('gui_running') as suggested makes the test page display correctly.

bpstahlman commented 8 years ago

So what happens if you do this in a buffer that has some "foo" words in it:

:syn keyword Foo foo
:hi ctermfg=Red

In non-gui vim, this should cause "foo" to be highlighted red, but I'm guessing that you won't see any highlighting at all until you do something like this: :hi guifg=#ff0000

Is that the case?

bpstahlman commented 8 years ago

Aha!!!! Just found this... https://github.com/neovim/neovim/issues/2781

I'm thinking you must have "true color" enabled: are you setting $NVIM_TUI_ENABLE_TRUE_COLOR somewhere? If so, then I think it's necessary to use guifg/guibg. This is the first I've heard of "true color" support in neovim. The github link I posted was a request to make has('gui_running') return the correct value even when true color is enabled, but apparently it hasn't been done yet...

If I start neovim like this... NVIM_TUI_ENABLE_TRUE_COLOR=1 nvim I see the same behavior as you... As a test, perhaps you could try starting it like that, but with 1 changed to 0 (to disable "true color").

Perhaps I should make an update to Txtfmt to change the has('gui_running') test to something like...

if has('gui_running') || exists('$NVIM_TUI_ENABLE_TRUE_COLOR') && $NVIM_TUI_ENABLE_TRUE_COLOR
pdoak commented 8 years ago

Great.

In my vimrc, I have NVIM_TUI_ENABLE_TRUE_COLOR=1. When I removed that and started neovim with NVIM_TUI_ENABLE_TRUE_COLOR=0 nvim, it did not work.

However, if I reinstate NVIM_TUI_ENABLE_TRUE_COLOR=1 in my vimrc and update syntax.vim with if has('gui_running') || exists('$NVIM_TUI_ENABLE_TRUE_COLOR') && $NVIM_TUI_ENABLE_TRUE_COLOR on line 225 and 302, it seems to work

Also, :syn keyword Foo foo :hi ctermfg=Red does nothing but :hi guifg=#ff0000 also seems to do nothing

bpstahlman commented 8 years ago

In my vimrc, I have NVIM_TUI_ENABLE_TRUE_COLOR=1. When I removed that and started neovim with NVIM_TUI_ENABLE_TRUE_COLOR=0 nvim, it did not work.

Did you still have the test hardcoded to 1 when you tried this, or had you already put it back to has('gui_running')?

:hi guifg=#ff0000 also seems to do nothing

Was that with $NVIM_TUI_ENABLE_TRUE_COLOR equal to 0 or 1?

To summarize what I've learned...

  • When "true color" is set ($NVIM_TUI_ENABLE_TRUE_COLOR == 1), guifg/guibg must be used; ctermfg/ctermbg have no effect.
  • If you enable "true color" in neovim, but your terminal doesn't support it, the highlighting won't work correctly. (You might assume that Neovim would simply fall back to using the ctermfg/ctermbg values, but it doesn't: apparently, it makes no attempt to determine whether the terminal supports "true color".) So... If you're using a terminal that doesn't support "true color" (e.g., gnome-terminal), you must be sure that $NVIM_TUI_ENABLE_TRUE_COLOR is not set.

Conclusion: Since $NVIM_TUI_ENABLE_TRUE_COLOR is a neovim-only thing, the has('gui_running') test should probably be changed to the following (to prevent problems when NVIM_TUI_ENABLE_TRUE_COLOR is set in the environment of a user of both vim and neovim): if has('gui_running') || has('nvim') && exists('$NVIM_TUI_ENABLE_TRUE_COLOR') && $NVIM_TUI_ENABLE_TRUE_COLOR

Does that all make sense?

pdoak commented 8 years ago

Did you still have the test hardcoded to 1 when you tried this, or had you already put it back to has('gui_running')? No. I had put it back to has('gui_running')

Was that with $NVIM_TUI_ENABLE_TRUE_COLOR equal to 0 or 1? 1

Your conclusion makes sense. The only thing I don't understand is your double stars around has('nvim')

bpstahlman commented 8 years ago

Oops! The double asterisks were meant only to bold the term I'd added to the previous test. Should have considered that the whole thing might be copy-pasted. Sorry…

pdoak commented 8 years ago

@bpstahlman all makes sense now. Many thanks for getting to the bottom of it.

Will you update the plugin to incorporate the change?

bpstahlman commented 8 years ago

Yes. I plan to make a release within a day or so (probably beta-2). I'll give you a heads-up if the logic is any different from what was posted earlier. I do have other enhancement/new feature releases planned in the fairly near term, but I'd like to release this fix right away, in case there are a significant number of neovim users who use "true color".

The odd thing to me is that neovim's help doesn't really seem to address "true color" at all. It's as though it's a patch that made it into trunk without corresponding documentation. Ah well... I guess can't complain about that: I released auto-maps, operator-pending maps, etc. before updating the Txtfmt documentation... ;-)

Let me know if you have any more questions/issues/suggestions...

bpstahlman commented 8 years ago

Incidentally, I appreciate your helping me root cause this. Sorry it took a bit of back and forth... I'd never really worked with neovim before, but will be paying more attention to it now. Definitely post any other neovim-specific issues you come across. Thanks again...

bpstahlman commented 8 years ago

In my vimrc, I have NVIM_TUI_ENABLE_TRUE_COLOR=1. When I removed that and started neovim with NVIM_TUI_ENABLE_TRUE_COLOR=0 nvim, it did not work.

I now see why setting the var to 0 didn't fix the issue: if the variable exists, neovim treats any value other than empty string as true. Accordingly, I've changed the test to...

has('gui_running') || has('nvim') && exists('$NVIM_TUI_ENABLE_TRUE_COLOR') && $NVIM_TUI_ENABLE_TRUE_COLOR != ''

I've pushed the changes to master. Will probably release later tonight or tomorrow morning.

pdoak commented 8 years ago

Thanks for getting to the bottom of it.

bpstahlman commented 8 years ago

Released fix in version 3.0beta-2