-bash: _fzf_orig_completion_g++: bad substitution in Cygwin - cygwin

When I open my Cygwin terminal, it shows the following at the top of window:
-bash: _fzf_orig_completion_g++: bad substitution
Eventhough it does not affect my jobs, but I want to avoid it.
Suggestions please.
Thanks!

To be precise, edit file C:\cygwin64\etc\bash_completion.d\zzz-fzf. Locate the function _fzf_defc() and add the following lines:
cmd="${cmd//+/_}"
cmd="${cmd//-/_}"
between the lines opts="$3" and orig_var="_fzf_orig_completion_$cmd"
Worked for me. Regards.

cygwin64, modify /etc/bash_completion_d/zzz-fzf, then it does work.
cmd="$1"
func="$2"
opts="$3"
cmd="${cmd//+/_}"
cmd="${cmd//-/_}"
orig_var="_fzf_orig_completion_$cmd"

It seems that this is a known issue. An issue on the github page for fzf posted on Jan 16, 2017 talks about it. The poster there posits the problem is the following,
the way i read all this is the reason for the error is the presence of the terminal part of the string, "...g++", as the ..++ part comprises illegal characters in a name
The above link references another similar issue posted on Sept 24, 2016 where the author responded on Jan 11th,
The support for Cygwin was discontinued since 0.9.0 due to the portability issue of ncurses library. But I'm working on a new renderer that does not depend on ncurses (#782), and it might be possible that we can make the latest fzf work on Cygwin again (#794). I'll let you know if it works out.
The easiest way to remove the bad substitution error that you are getting would be, as #dubnde posted in the comments and I can verify as well, to uninstall fzf and its related packages until the support is worked out for cygwin.

Related

Problem of Running Monodevelop-Stable on Linux

I've tried to install Monodevelop-Stable on Arch-Based Linux ( Manjaro ) and i'd fault 3 times, it wasn`t possible to build from Github sources or from AUR or Flatpak, so i decided to use monodevelop-stable-bin also from AUR, but when i tried to run my app , i got this problem
"$(MSBuildBinPath)\Microsoft.CSharp.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk (MSB4019)
Another words:
"MonoDevelop/7.0/MSBuild/2472_1/Microsoft.Csharp.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk (MSB4019)
But i have in my directory:
Microsoft.Csharp.Crosstargetting.targets
Notice , that this answer also wasn`t helpful:
this one
Question is indeed so popular on the internet , but i still haven`t found an answer , and i need some help
I have the same problem, I talked a bit more in detail in this answer, but the short of it is that, for now, it seems that there is no way to use Monodevelop on Arch based systems.
I recommend using a Ubuntu based distro for programming (there are many other similar problems with Arch). There Monodevelop should work just fine.
Of course, you can try to use other IDEs, like JetBrains Rider (I haven't personally tested it) or just use text editors with appropriate extensions, like VSCode or Atom.

Git Bash Inserts Tilde

Does anyone know what could be causing git bash to randomly insert the tilde character in the terminal window.
Also I am not sure if related, but when viewing log files in vim, the help dialog automatically opens in a split window in vim.
Does anyone know what the issue could be? I suspect it could be some sort of keep alive setting, but I have yet to figure this one out.
Same as above answer.
Caffeine was causing it for me.
What I did was add a command argument -useshift and this stopped it completely.
For more command line things: Caffeine command line arguments
I finally found the answer to the issue from https://superuser.com/questions/708511/putty-inserts-random-characters-during-a-session
I had also just installed Caffeine about a month ago, and that is when the symptoms began! Now that I have it disabled the symptoms above have gone away!
caffeine -STES in the shortcut did it for me.

Don't understand 'complete-items' in the vim help files

I am looking at the vim help files and looking for a variable on the linux version that is like v:completed_item from cygwin. v:completed_item is a:
Dictionary containing the complete-items for the most recently completed word after CompleteDone.  The Dictionary is empty if the completion failed.
I am looking for the same thing for Linux but I cannot find it and the closes thing I can find in the ins-completion help file is complete-item but nothing on how to use it anyone know how to use it? And if it will be the same as the completed_item from the cygwin version?
Thanks
The presence of a feature doesn't depend on the platform, it depends on the build type, version number, and patch-level.
If you want feature parity between two environments, you rather obviously must install the same build type and version number (including patches) on both environments.
FYI, that variable was added in patch 7.4.774.

Vim plugin Align fails to work. Can it be installed without vimball?

I've happily installed the vim Align plugin on my home computer, but on the Red Hat servers at work, the installation doesn't work. The servers at work have a very old copy (2006) of vimball, which from Googling I know doesn't support more recent vimballs, including Align. I can't get the systems group (IT department) to upgrade vimball, so I thought perhaps I could simply copy the various files into ~/.vim/plugin by hand. I copied the 3 files from my home system AlignMapsPlugin.vim AlignPlugin.vim cecutil.vim, but when I attempt to use Align from within vim I get the following error message
E117: Unknown function: Align#Align
I know that it's seeing the plugin, because when I remove the plugin the error message is different (it says "Not an editor command Align").
Is there a workaround for this? I love "Align" and would sure like to use it at work as well as at home.
{rtp}/plugin is not the only location where plugin files can be placed. The name of the function suggests that there is at least one file in {rtp}/autoload named Align.vim (autoloaded functions must have names looking like path#to#file#with#function#without#leading#autoload#function_name(), this example is for function located in {rtp}/autoload/path/to/file/with/function/without/leading/autoload.vim). But I strongly suggest that if #LucHermitte’s solution is not acceptable, you should use something that supports holding plugins in separate directories. If you used VAM all you needed to do (assuming that you have already installed align using VAM) is to look for files in ~/.vim/vim-addons/Align%294 and copy all of them.
Update: Forgot to say, you may try to install newer vimball plugin into your ~/.vim. In order to do this you need copy a file placed in /usr/share/vim/vim73/autoload/vimball.vim to ~/.vim/autoload (there is another related file, /usr/share/vim/vim73/plugin/vimballPlugin.vim, but it is not likely to be changed). No need to make IT department to upgrade anything, unless the newest version uses the newest vim features.
Install a recent (/the latest) vim in your $HOME. I've been doing this for ages now. It's the easiest way to get the job done (i.e. to have a proper environment).

Cygwin/vim Windows 7 file access issue

It appears that on Windows 7 Cygwin/vim thinks all files are read only. You can edit the files fine in Textpad/Notepad but vim thinks they are read only. There are number of reported occurrences but I can't see a solution. ??
Update: Per accepted answer, created the file C:\cygwin\etc\fstab.d\myname with the entry below.
none /cygdrive cygdrive binary,posix=0,user 0 0,acl
Per the comment you'll see in C:\cygwin\etc\fstab, this statement is the default Cygwin mount, save for the acl which I added.
Cygwin tries to impose a POSIX compatibility layer over the windows access control lists, which often leads to many problems.
In older versions of Cygwin a cheap solution was to disable this POSIX compatibility layer by setting the environment variable "CYGWIN=ntsec". Nowadays it seems as one must set the "acl" option for your drive(s).
http://www.cygwin.com/cygwin-ug-net/using.html#mount-table
This has some drawbacks. If you try to run a secured cygwin installation for multiple users, then better use a real linux, this will save so much hassle.
I guess another solution would be to use the native version of Vim instead of the cygwin one.

Resources