My clang-complete doesn't run well in my Vim - vim

I installed clang-complete by using Vundle,and downloaded llvm using sudo apt install llvm-4.0, downloaded clang by using sudo apt install libclang-4.0.Here is my .vimrc:
let g:clang_complete_auto=1 " automatically complete after -> . ::
let g:clang_hl_errors=1 " highlight the warnings and error the same way clang does it
let g:clang_complete_copen=0 " open quickfix window on error
let g:clang_periodic_quickfix=0 " periodically update the quickfix window
let g:clang_snippets=0
let g:clang_close_preview=1
let g:clang_use_library=1
let g:clang_library_path='/usr/lib/llvm-4.0/lib'
let g:clang_user_options='-stdlib=libc++ -std=c++11 -I /usr/include/c++/8/'
set completeopt=menu,longest
However, it doesn't run well in this way. When I type std::, the menu only shows some useless items such as size_t but except cout etc.

Follow the Troubleshooting section in the README of your plugin. It says that the first step is to check completefunc and omnifunc when in your C++ buffer, and then to check the output of :messages. I think that knowing what those settings are at runtime of your Vim would show us what's going on.
If completefunc isn't set, then there's something going on with one of your settings; the plugin is trying to do what it does, but one of your settings are improperly formatted (or something like that.) The output of :messages should be able to show you which setting this is, as well.

Related

disable "Press ENTER or type command to continue" in terminal

I know how to disable this inside Vim, I am curious is it possible to disable this at all when running vim in terminal.
e.g.
tdi#piesek:~$ vim
ycm_client_support.[so|pyd|dll] and ycm_core.[so|pyd|dll] not detected; you need to compile YCM before using it. Read the docs!
Press ENTER or type command to continue
My scenario is that I install vim and Vundle plugins automatically via saltstack for all users (vim +PluginInstall +qall). Some plugins, however need more love, e.g. YouCompleteMe, which gives this message.
I would like to force vim to 'go on' even when there are some things that keep on wanting ENTER pressed.
If you know the commands (in your ~/.vimrc) who trigger the message, you can prepend :silent! in front of it. This will suppress any output and errors.
For general messages, you can try :set nomore.
cd ~/.vim/bundle/YouCompleteMe
./install.py
Fixed this problem for me, I have Ubuntu 14 as OS and CMake installed, previously..
I tried it by deleting one by one.And I find that set syntax cause the problem..not sure if is the culprit.
So you can delete it to solve the problem.

Why can't this menu item work?

I got this in my vimrc:
:so menu_format.vim
and in menu_format.vim, this:
"... other menu items that work
menu Format.nbsp_space <ESC>:%s# # #gec<CR> //(the 1st blank is 0xa0, the 2nd is 0x20)
"... other menu items that work
On Windows it works (been using it for a while), but on Linux Mint 17 vim gives:
E319: Sorry, the command is not available in this version.
I tried %s# # #gec on command line, it worked, too!
I knew how to fix this: %s#[\xa0]# #gec would do. I just wanted to know why there is such a difference, and it made me doubt the portability of my vim scripts.
BTW, I built vim (7.4.560) on both Linux and Windows with the same configuration, both use the same menu_format.vim.
It looks like you only have the minimal version of Vim named vim-tiny; it only provides a minimal vi-compatible implementation. The E319 implies that the :menu command is not available, the :substitute does look fine and should work.
To get the full Vim (and graphical GVIM), install the following package:
$ sudo apt-get install vim-gnome

How Do I get a syntax check to work in/with vim?

This question has been asked, in one form or another, a dozen times here, and it blows my mind how not a single one actually addresses how to configure syntastic or jslint such that it actually does what it is supposed to do (its README file is completely useless)
see here
Can anyone provide some step by step instructions, or a link to such instructions. I tried to install jslint and spidermonkey, and I got nowhere.
I managed to get the syntax check to work (thanks to romainl). A few things I learned along the way that may help anyone with a similar problem
To build Javascript Lint look for the README file nested in jsl-x.x.x/src/README.html
The build instructions are gmake -f Makefile.ref but gmake is the same thing as make so issue the command sudo ln -s /usr/bin/make /usr/bin/gmake
jsl will now be found in jsl-0.3.0/src/Linux_All_DBG.OBJ/jsl. To make it generally accessible do something like: ln -s /whatever/jsl-0.3.0/src/Linux_All_DBG.OBJ /home/ForestGump/bin/jsl. More information here
To check that jsl actually works find a test file ( here) then issue the command jsl -process test.js. It should list all the errors.
To customize your command line, add this to your vimrc file set statusline=%{SyntasticStatuslineFlag()}
What did you do? What works and what doesn't? Do you get error messages?
Here is what I did:
Downloaded the jsl sources from the JavaScript Lint site.
Built jsl and moved it somewhere in my $PATH.
Checked if it worked by running it against a random .js file
Downloaded and installed Syntastic as a Pathogen bundle.
Typed :helptags /path/to/syntastic/doc because for some reason Pathogen's automatic help tags generation doesn't work for me.
Read Syntastic's documentation: :help syntastic.
Steps 1 to 5 didn't take more than 3 or 4 minutes, maybe less.
Step 6 is obligatory, whatever new tool you try. RTFM.
I didn't have to configure anything beside these 3 lines in my .vimrc (and I believe the third is redundant):
let g:syntastic_auto_loc_list=1
let g:syntastic_disabled_filetypes=['html']
let g:syntastic_enable_signs=1
and customizing my statusline a bit with:
%{SyntasticStatuslineFlag()}
EDIT
Here is my statusline:
set statusline=%<\ %n:%f\ %m%r%y%{SyntasticStatuslineFlag()}%=line:\ %l\ of\ %L,\ col:\ %c%V,\ win:\ %{WindowNumber()}\
Don't copy it verbatim or you'll get some errors due to the function call at the end. There is a paragraph about that in syntastic's help.
END EDIT
After all that, 10 or 12 minutes if you count reading the documentation, I have a very helpful location list and signs poping up each time I save a .js file with syntax errors.
Setup vundle according to its README.
Put this into your .vimrc:
Bundle 'scrooloose/syntastic'
Then enter this command in vim:
:BundleInstall
That's it.
EDIT: Vundle has changed its syntax since I originally wrote this. Nowadays, you use
Plugin 'scrooloose/syntastic'
and then enter
:PluginInstall

JSLint and VIM requiring manual UAC elevation on Windows 7

I'm a big fan of JSLint and I use a plugin for VIM to display Lint output in the quickfix window: http://www.vim.org/scripts/script.php?script_id=2578.
Unfortunately, I'm having some trouble with it running on Windows 7. UAC appears to be blocking VIM from running external commands unless I manually run VIM as an administrator. The command that actually runs jsl.exe is:
let cmd_output = system(g:jslint_command . ' ' . g:jslint_command_options . ' ' . current_file
Does anyone know why UAC causes trouble here? Is there a good way for me to enable JSLint without manually running VIM as an administrator every time?
Try the steps at http://vim.wikia.com/wiki/Vim_On_Vista especially the section titled "VirtualStore" as that looks like it matches your symptoms. The remedy described there is to remove the folder at "%USERPROFILE%\AppData\Local\VirtualStore\Program Files\Vim"

vim and latex-box

I installed the vim plugin latex-box but I am having trouble getting it to compile my Latex file. The docs say it uses latexmk to do the compiling, and I have that installed and it works when called by itself.
But when I use the plugin's \ll command to compile I get an error that says 'cannot run latexmk in background without a VIM server'. I cannot find an explanation of why this error would occur in the plugin documentation.
EDIT:
I found a solution to this issue, but ran into others.
To fix this, you need to install the full version of vim (which is different depending on your OS) which will include things like server support. I suggest doing this even if you don't use this plugin because it will fix not been able to copy/paste from/to vim. In (K)ubuntu, install the package vim-gtk.
Start vim like this vim --servername SOMETHING file.tex
After doing this, the servername error went away and the compilation went through but the output from latexmk shows up on top of the file I'm editing. It doesn't overwrite it, it's just displayed on top of the text. When I move the cursor and vim highlights a word or bracket, that appears back on the screen. The only quick way I found to get rid of the compiler output is to scroll the file up and back down, that makes the text appear again.
You can ask vim to redraw the screen like this:
:redraw!
Append that command after running your latex command.

Resources