VIM can't be used after system upgrade to ubuntu18.04 - vim

I upgraded my system from ubuntu16.04 to ubuntu18.04,once I updated my system,I fond that my VIM could not be used.Whenever I use my VIM,the following mistakes will occur.
$ vim test.cpp
vim: error while loading shared libraries: libruby-2.3.so.2.3: cannot open shared object file: No such file or directory
What should I do?
Help me slove this problem,thanks!

If this is the default Vim installed via your package manager, that's not supposed to happen. Something's messed up, and I would attempt a complete purge and reinstall of the Vim packages.
If you've compiled Vim yourself (then it's typically installed as /usr/local/bin/vim, or under your home directory), you need to recompile it.
Vim typically isn't a static, standalone binary. Especially for the language interpreters (Perl, Python, Ruby), it links to them via shared libraries. You'll see some of this in the :version output.
On the positive side, this means that any fixes and enhancements automatically get into Vim as well. On the negative side, this means that if one of those dependent libraries get upgraded (as happens during a system upgrade) and the old version is lost, you have to recompile Vim, so that the new dependencies are incorporated into it. The also implies that it's not advisable to copy a self-compiled Vim to another Linux system (unless you're sure it's on the exactly same version), and compile on each system instead.

Related

How does ncurses search for terminal descriptions

I'm building ncurses 6.1 from source for some reasons. First I configure the sources with
./configure
and then I build it with
make
both without arguments. When I try to run tests I get the error message
Error opening terminal: xterm-256color.
on my local system (Ubuntu 17.10) and
Error opening terminal: xterm
on the build server (Jenkins Docker container).
I found out that this build is looking for terminal descriptions in /usr/share/terminfo/. There are many descriptions but no xterm-256color on my local system. On the build server the folder /usr/share/terminfo/ is empty. I found xterm-256color and xterm at /lib/terminfo. When I install ncurses with package manager (apt for Ubuntu 17.10), it works. So I assume that this package chooses the right path. I copied xterm-256color resp. xterm from /lib/terminfo to /usr/share/terminfo/ and my build works on both systems now. Why do two different paths exist and why do these two versions of ncurses choose two different paths? I need a conan package of ncurses that works out of the box without copying description files.
This could be a duplicate of:
How to set custom search paths for the terminfo database when building ncurses from source
The answer is in the summary at the end of configure (which isn't shown in the question). But running infocmp -D will show the directories that infocmp would use when looking for descriptions.
You can modify the behavior using the TERMINFO and TERMINFO_DIRS environment variables.
The /lib/terminfo is Debian-specific (Ubuntu doesn't provide any changes for ncurses; they simply recompile the Debian packages: most Ubuntu bug reports for ncurses deal with their problems in doing that).
Debian by default installs someone's notion of a minimal terminal database in that directory. Install ncurses-term to get a full terminal database.
By the way, compiling and installing ncurses on Debian/Ubuntu/other systems with ncurses already installed runs a risk of breaking the existing libraries which are used (for example) by bash and other utilities that you probably need.

Vim YouCompleteMe plugin - don't download clang

I want to install and use the YouCompleteMe Plugin for Vim. However, a part of the installation implies downloading clang 3.7, which is already a part of my current Ubuntu installation. Generally, wasting space on multiple versions of the same application on my file system is something I disregard, but now I'm also running dual-boot and don't have that much space left for a "casual" downloaded copy of clang just to make use of this plugin.
How can I make the YouCompleteMe to make use of the installation/libraries I already have, if possible at all?
Thanks.
Depending on your YCM install method, you will have to specify something like:
--system-libclang --system-boost
…as arguments to the install.py command.
Note that the YCM install docs strongly discourage the usage of system-libclang.

Integrate Vim-R-plugin with remote ssh-byobu session?

I am following the inspiring example here to setup Vim for R development. One difference is that I am running Vim and R on a remote server via ssh session. And this ssh starts byobu, which has tmux started automatically whenever I login. What I want is to make an Vim-R-Dev command/alias so that:
After logging in with the ssh and tmux is already running, I can type Vim-R-Dev to open up a window with panes look like in the attached image:
Illustration of sending R code from several vim viewports (in middle)
to an R session (on top right). The vim session can run on a local
computer, while the R session can run on the same or a remote system.
The snapshot also illustrates the omni completion utility of the
vim-r-plugin (purple box), viewing of an R function help document in a
separate tmux pane (bottom right) and the NERDTree file browser
(left).
After a while of fumbling with Vim and R, I decided to quit this approach. My feeling was that the combination is not mature enough for production. So I tried to find and found EMACS + ESS. Yes, emacs is the rival to Vim as a programmer/geek editor. And it seems I am a traitor of Vim jump to Emacs when the two are at war :-) It doesn't have to be that way.
At first I installed emacs and ess plugin/package and tried to learn the basics. I was very happy about how ESS is much more mature than vimR. And the way emacs works with packages and configuration make me much more happy than when I used Vim. This is partly because I have some basic background and was willing to deal with ELISP, the LISP programming language variant that is made for Emacs. An advice for some one have Vim skills though: You'd better off install Evil package from the beginning so you have the power of quick editing in Vim but the whole pack of other wonderful things, i.e. robustness, fine customization, in-place documentation. I have discussed many things about Emacs and ESS here on stackoverflow.com and at emacs.stackexchange.com too. The essential setup for R programmer is:
Emacs, ESS, Evil, Helm*, auto-complete, auctex, polymode, r-autoyas. Following are full list of additional packages that I installed. The one that allows me to edit and run code on remote server is called tramp with X forwarding. I will post more on this if there are requests.
ac-ispell 0.7 installed ispell completion source for auto-complete
async 1.3 installed Asynchronous processing in Emacs
auctex 11.88.6 installed Integrated environment for *TeX*
auto-complete 1.5.0 installed Auto Completion for GNU Emacs
auto-complete-e... 0.0.7 installed Exuberant ctags auto-complete.el source
auto-complete-pcmp 0.0.2 installed Provide auto-complete sources using pcomplete results
auto-dictionary 1.1 installed automatic dictionary switcher for flyspell
auto-package-up... 1.4 installed Automatically update Emacs packages.
auto-yasnippet 0.3.0 installed Quickly create disposable yasnippets
bash-completion 2.0.0 installed BASH completion for the shell buffer
bind-key 20140601 installed A simple way to manage personal keybindings
bog 1.0.0 installed Extensions for research notes in Org mode
bongo 1.0 installed play music with Emacs
boon 0.1 installed Ergonomic Command Mode for Emacs.
bug-hunter 0.5 installed Hunt down errors in elisp files
calfw 1.4 installed Calendar view framework on Emacs
column-enforce-... 20140902.949 installed Highlight text that extends beyond a column
column-marker 20121128.843 installed Highlight certain character columns
company 0.8.12 installed Modular text completion framework
ctable 20140304.1659 installed Table component for Emacs Lisp
ctags 1.1.1 installed No description available.
ctags-update 0.2.0 installed (auto) update TAGS in parent directory using exuberant-ctags
cython-mode 0.23.2.2 installed Major mode for editing Cython files
d-mode 2.0.6 installed D Programming Language mode for (X)Emacs
dash 2.11.0 installed A modern list library for Emacs
diminish 0.44 installed Diminished modes are minor modes with no modeline display
discover 0.3 installed discover more of Emacs
el-autoyas 0.5 installed Automatically create Emacs-Lisp Yasnippets
elpy 1.8.1 installed Emacs Python Development Environment
epl 71.4.8098 installed Emacs Package Library
ess 20150810.826 installed Emacs Speaks Statistics
ess-R-data-view 20130509.458 installed Data viewer for GNU R
ess-R-object-popup 20130302.336 installed popup description of R object
ess-smart-equals 20150201.2201 installed better smart-assignment with =-key in R and S
ess-smart-under... 20131229.1851 installed Ess Smart Underscore
evil 20150810.426 installed Extensible Vi layer for Emacs.
evil-leader 20140606.543 installed let there be <leader>
evil-org 20150513.1610 installed evil keybindings for org-mode
expand-region 20150804.2210 installed Increase selected region by semantic units.
f 20150605.927 installed Modern API for working with files and directories
find-file-in-pr... 20150722.2347 installed Find files in a project quickly.
flx 20140921.739 installed fuzzy matching with good sorting
flx-ido 20140821.2033 installed flx integration for ido
ggtags 20150718.2227 installed emacs frontend to GNU Global source code tagging system
gh 20150126.1125 installed A GitHub library for Emacs
git 20140128.241 installed An Elisp API for programmatically using Git
git-auto-commit... 20150404.751 installed Emacs Minor mode to automatically commit and push
git-commit 20150805.2024 installed Edit Git commit messages
git-commit-mode 1.0.0 installed Major mode for editing git commit messages
git-messenger 20150314.602 installed Pop up last commit information of current line
goto-chg 20131228.1459 installed goto last change
helm 20150805.54 installed Helm is an Emacs incremental and narrowing framework
helm-ack 20141030.526 installed Ack command with helm interface
helm-core 20150805.206 installed Development files for Helm
helm-github-stars 20150625.1523 installed Helm integration for your starred repositories on github
helm-mode-manager 20140224.1504 installed Select and toggle major and minor modes with helm
highlight-inden... 20150307.208 installed Minor modes for highlighting indentation
hippie-expand-s... 20130907.132 installed Hook slime's completion into hippie-expand
imenu-list 20150804.705 installed Show imenu entries in a seperate buffer
key-chord 20150808.1705 installed map pairs of simultaneously pressed keys to commands
latex-extra 20150806.1521 installed Adds several useful functionalities to LaTeX-mode.
latex-pretty-sy... 20150409.240 installed Display many latex symbols as their unicode counterparts
latex-preview-pane 20150519.1244 installed Makes LaTeX editing less painful by providing a updatable preview pane
let-alist 1.0.4 installed Easily let-bind values of an assoc-list by their names
log4e 20150105.505 installed provide logging framework for elisp
logito 20120225.1255 installed logging library for Emacs
magit 20150807.401 installed A Git porcelain inside Emacs
magit-gh-pulls 20150723.1144 installed GitHub pull requests extension for Magit
magit-popup 20150730.1344 installed Define prefix-infix-suffix command combos
makey 20131231.630 installed interactive commandline mode
markdown-mode 20150727.855 installed Emacs Major mode for Markdown-formatted text files
markdown-toc 20150715.914 installed A simple TOC generator for markdown file
monokai-theme 20150521.2257 installed A fruity color theme for Emacs.
org-ac 20140302.413 installed Some auto-complete sources for org-mode
org-autolist 20150118.1837 installed Improved list management in org-mode
pcache 20150125.1653 installed persistent caching for Emacs
php-auto-yasnip... 20141128.1411 installed Creates snippets for PHP functions
php-mode 20150729.213 installed Major mode for editing PHP code
pkg-info 20150517.443 installed Information about packages
polymode 20150729.734 installed Versatile multiple modes with extensive literate programming support
popup 20150626.711 installed Visual Popup User Interface
popup-complete 20141108.1908 installed completion with popup
popwin 20150315.600 installed Popup Window Manager.
powerline 20150628.1957 installed Rewrite of Powerline
powerline-evil 20140517.1 installed Utilities for better Evil support for Powerline
projectile 20150807.620 installed Manage and navigate projects in Emacs easily
pyvenv 20150503.941 installed Python virtual environment interface
r-autoyas 20140101.710 installed Provides automatically created yasnippets for R function argument lists.
real-auto-save 20150701.815 installed Automatically save your all your buffers/files at regular intervals.
rtags 20150804.2337 installed No description available.
s 20140910.334 installed The long lost Emacs string manipulation library.
scala-mode2 20150617.2350 installed Major mode for editing Scala >= 2.9
scala-outline-p... 20150702.937 installed scala file summary popup
seq 20150709.1040 installed Sequence manipulation functions
session 20120510.1700 installed use variables, registers and buffer places across sessions
skeletor 20150228.1557 installed Provides project skeletons for Emacs
sx 20150718.625 installed StackExchange client. Ask and answer questions on Stack Overflow, Super User, and the likes
twilight-anti-b... 20140810.34 installed A soothing Emacs 24 light-on-dark theme
undo-tree 20140509.522 installed Treat undo history as a tree
use-package 20150731.2330 installed A use-package declaration for simplifying your .emacs
which-key 20150803.1211 installed Display available keybindings in popup
window-purpose 20150715.439 installed Purpose-based window management for Emacs
with-editor 20150710.252 installed Use the Emacsclient as $EDITOR
yaml-mode 20141125.37 installed Major mode for editing YAML files
yasnippet 20150804.1120 installed Yet another snippet extension for Emacs.
yatemplate 20150305.1526 installed File templates with yasnippet
yaxception 20150105.652 installed Provide framework about exception like Java for Elisp
zygospore 20140703.152 installed reversible C-x 1 (delete-other-windows)

Lack of file explorer in Linux vim

In vim 7.3 on OSX, if I type
vim ~/myfiles
vim will put me into the Vim File Explorer for that directory, and I can open or rename files.
In vim 7.4 on Ubuntu, I get the unhelpful error message
"~/myfiles" is a directory
Looking through the compiled options (vim --version) and online documentation, I see no obvious way to activate this functionality through, say, a command-line or compile-time option. It is such a great feature of vim that I'm surprised it is not enabled on the version of vim available in the Linux package.
Use the :E command for the explorer mode.
The ability to edit a directory like this depends on a plugin. Most of the time, that plugin is the "netrw" plugin provided with Vim in the official runtime files. In Ubuntu (and Debian) you install that runtime separately so that every Vim package can use it rather than duplicating functionality. Try installing the vim-runtime package, and maybe a more feature-full Vim while you are at it, if you have not already done so.
To summarize and answer my own question...
File explorer functionality is actually provided by a plug-in, "netrw", which seems not to be installed by default in the two or three versions of vim I tried via apt-get.
Installing NERDTree solved the problem brilliantly - it can do so much more than the default explorer. I have not yet figured out how to rename a file using NERDTree - something that is easy with 'netrw', but that is a minor irritant and there is probably a way to do it.

linux, freepascal, fp-ide: No debugger support availble. How to enable debugger?

How to enable debugger in fp-ide? I read somewhere that I should compile fp-ide from sources, but I don't know how to do this. Can someone help me?
Get the generic linux tar installer (fpc-2.6.0.x86_64-linux.tar) for FPC from http://www.freepascal.org/down/x86_64/linux-hungary.var It comes with a precompiled IDE with integrated debugger support and it works fine at least on 12.04 LTS.
I wasn't able to find a PPA for fp-ide, but I can describe how the CLI IDE is compiled on Arch Linux as documented in the repository. Do note that compiling will not enable the debugger in the CLI, as it seems to be an incompatibility between gdb and fp (fp-ide) according to e.g. this bug report in Debian. On Arch Linux, the fpc package also doesn't support the debugger in fp by design (it is explicitly disabled using the NOGDB flag).
Anyhow, here goes the compilation process:
Make sure you have FreePascal installed already, as you need it to compile the IDE
Download the source tarball
Extract the tarball to a location of your convenience and cd into that directory
Execute the following code from within your shell:
pushd fpcsrc/compiler
fpcmake -Tall
popd
make build
make -j1 install
# in Arch, the switch "NOGDB=1" is present in both make lines
That should compile the IDE and install it (you can even try to integrate it in dpkg by using checkinstall instead of make install, but take a look at the Arch PKGBUILD to see an example of what might be needed).
But why do you use the command line IDE fp instead of lazarus? With lazarus you can also make console applications and it offers much more features (e.g. working debug support).

Resources