What causes the fish shell to change input while typing? - fish

I understand, that when I start typing that fish can give me either auto-suggestions or tab completion.
But: I also noticed that sometimes I get updates to my command line while typing. Example: I have a command a lengthy command line to enable some tooling of mine, lets say it looks like:
python3 whatever.py -bla -blub --property fubber:blub
I start typing "py2" and fish suggests
python3 whatever.py -bla -blub --property fubber:blub
OK. So I use alt-left arrow to accept up to
python3 whatever.py -bla -blub
and now I start typing --property ( not accepting, typing that word ). Thing is: as soon as typed the last char (y) from property fish will somehow insert content into command line. Worse: it also happens frequently, that the whole isn't showing correctly any more in my iterm session - I actually have no way of seeing the exact current command before hitting enter.
I know that the above isn't exactly an MCVE - but I can't disclose my actual command here, and I was unable to create that MCVE. In that sense, my question boils down to: which events make the fish shell insert content into the "current" command?
For completness:
I am running fish, version 2.7 on Mac Os 10.13.3, installed via brew
default bindings
I am sure that just pressed "y", no modifier key added to that
But I am also unable to repro at this point in time. So, although I am very sure that I didn't dream this up, I consider this to be a strange hick-up for the moment that hopefully stopped bugging me for now.

Related

Weird CMD - VSCode behavior

yesterday I had SumatraPDF and VisualStudioCode with latex-workshop working with forward and reverse-search. Today the reverse-search didn't work any more. With a simple bat file I tried to show the commandline arguments.
echo %*
pause
They seemed correct and when I copied the command and paste it into a new cmd it works. To do further testing I tried to direct command and run it.
"C:\....\Code.exe" -g "%1:%2"
pause
Visual Studio Code responds: bad option -g
In SumatraPDF I set cmd as command.
Now the behavior is that I have two cmd windows. With the cmd directly opened the VSC open's the file. With the cmd launched indirect I got the error message.
I have tried resetting the environment variables, changing the current working directory, and checking the code page currently in use.
How can it be that cmd behaves differently with seemingly the same environment? And what can I do to make a cmd started from an application work like a cmd started by windows?
Update: It appears there were a couple of recent security changes in the way VSCODE.exe is allowed to interact with the command line (especially affecting LaTeX-workshop users) so for recent changes twice this year see the discussion at https://forum.sumatrapdfreader.org/t/inverse-search-not-performed-for-vs-code-exe/4486/27
Within SumatraPDF the reverse syntex command for %1 is replaced by %f for file and (l)L for line
It is triggered by a double click near the line of interest and if the synctex index file was compiled correctly by PdfLaTeX (or similar) it will include the tex %f(ilename) and the nearest %l(ine) reference to the point where double clicked.
Thus your tex syctex enhanced "reverse search" call out of SumatraPDF should historically be
"C:\...path to...\Code.exe" -g "%f:%l"
that's Lower L not 1
Avoid using any depreciated -inverse-search parameter from a LaTeX editor just add it once into SumatraPDF-settings.txt and then it's not disturbed by repeated assignments when running your -forward-search.
It will NOT work if the file.synctex or file.synctex.gz is corrupt by a bad PDF compilation.
HOWEVER It seem Microsoft have added the requirement to add a CLI.js handler and requires another switch setting after that ! (see link to discussion in Update above)
For a small test file download https://github.com/GitHubRulesOK/MyNotes/raw/master/AppNotes/SumatraPDF/LATeX%20and%20Reverse-Search.zip unpack and open sync.pdf in SumatraPDF to test that double click on page opens sync.tex in the editor
If the message is cannot start ... then the command line is not configured correctly. A rough test for a bad synctex is to see what happens if the call is changed by adding cmd /k echo to the start, since that will confirm the reverse command. Here I wrote "wrong" as the path to code.exe, once corrected I can remove cmd /k echo.
For some other systems where the reverse might change
see https://github.com/sumatrapdfreader/sumatrapdf/issues/1197#
However there should be no interference in a valid VsCode call.

New fish session on iTerm2 get (standard_in) 1: parse error

I recently updated iTerm2 to version 3.2.4 and then to 3.2.5 and I get (standard_in) 1: parse error every time I start a new fish session. (on both versions - nothing on the previous ones).
I use fortune -a -s as greeting, and don't think that is the cause of the error.
My version of fish is 2.7.1
Renaming config.fish file, "solved" the error! I believe the real problem is in init.fish.
My config.fish file :
set -gx OMF_PATH /Users/<my-user>/.local/share/omf
set -gx OMF_CONFIG /Users/<my-user>/.config/omf
source $OMF_PATH/init.fish
set -g fish_prompt_pwd_dir_length 5
My init.fish file was never altered, so the file is still equal to the original one: init.fish
I had a similar issue although it didn't affect me from starting a fish shell. However, I believe the similar outcome was related. When I added quotes in certain spots, and used brackets to separate a variable to be expanded before appending the rest of a string to it that seemed to work. In your case try editing config.fish like so:
set -gx OMF_PATH "/Users/anonirato/.local/share/omf"
set -gx OMF_CONFIG "/Users/anonirato/.config/omf"
source "{$OMF_PATH}/init.fish"
set -g fish_prompt_pwd_dir_length 5
Let me know if that does anything for ya. If not, then I will dig deeper and edit my answer.

Send tmux command to tmuxinator

Specifically, I need to create a profile that by default will have a small pain displaying the clock, which can be triggered with C-b t. However, I couldn't find the way to do that.
In this GitHub issue comment, a Collaborator of the project said it could be defined like a regular command, but on my ZSH setup, it just didn't work, saying "zsh: Command not found: C-b".
Does anyone happen to know how I can achieve this?
Thanks!!!
windows:
- work:
panes:
- tmux clock-mode
- ipython
Below is what happens when typing tmux clock-mode inside tmux session:
current tmux client connect to tmux server
attach to current(or the most recently) session
since the -t argument is omitted, the currently active pane in the current window is used for the clock-mode command.
Checkout the session in $man tmux for more detail.
COMMANDS
This section contains a list of the commands supported by tmux. Most commands accept the optional -t argument with one of target-client, target-session
target-window, or target-pane. These specify the client, session, window or pane which a command should affect. target-client is the name of the pty(7)
file to which the client is connected, for example either of /dev/ttyp1 or ttyp1 for the client attached to /dev/ttyp1. If no client is specified, the
current client is chosen, if possible, or an error is reported. Clients may be listed with the list-clients command.

How can I modify command line in Ubuntu 10.04?

I am using a vpn service from certain server. I was given with a root account, and when I connect with a root account, the command line looks like below.
root#xa9g82:/etc/#
Then I used useradd to add an account called 'temp'
When I connected to the server with temp, then the command line only has a single character.
$
The user information is not shown, neither the path. Also, note that, in root's command line I can use tab to automatically complete the filename, however 'temp's command line inserts tab space, when I press tab. It is very inconvenient.
I am using Ubuntu 10.04. How can I resolve this issue?
I usually edit ~/.bashrc. Being root, you might want to change the system-wide preferences, at /etc/bash.bashrc. Personally, I changed some lines in ~/.bashrc to look like:-
# If this is an xterm set the title to user#host:dir
case "$TERM" in
xterm*|rxvt*)
## PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u#\h: \w\a\]$PS1" # default
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\h: \W\a\]$PS1" # How I like it
;;
*)
;;
esac
use prompt to set the prompt.... (man prompt...)
it depends on what shell you run each one has it's own tricks, but you can make it looks as you wish.
BASH
TCSH
It is likely that the default shell for root is set to /bin/sh, which does not provide many of the features that you may used to if you use a shell like bash. To check if this is the case, run the following command:
cat /etc/passwd | grep ^root
The last component of the line that this command outputs will be your shell (which, as stated previously, I'm guessing is /bin/sh). If this is not the shell you want (it probably isn't), then edit /etc/passwd (using nano or whatever editor you're most comfortable with) and change your shell to something more palatable, like /bin/bash. After doing this, you'll need to log out and then log back in.

How do I get the "Command Buffer" in Solaris 10?

When working on a linx CShell u get the option to press the up / down arrows to select the last command/s typed or the Command Buffer. This even works on Windows.
However this is not functional when working on Solaris, to which i recently switched. I am guessing that the shell is also a CShell.
Please tell me what key combination is required to have this feature on Solaris ?
The default shell in Solaris has command history, but you can also use Bash instead, it's more user friendly. Just type 'bash' (no quotes) at the command line. You can also edit /etc/passwd to make bash your default shell.
The "official" default shell for Solaris is actually sh, the original Bourne shell (see Chapter 10 of the Advanced User Guide for Solaris for more info). If you'd like to change it to csh or tcsh—and you're not root (it's generally considered bad practice to use anything but sh as root's default)—just issue passwd -e /path/to/shell_of_your_choice <loginname>. I'm guessing this would probably look like passwd -e /bin/csh <loginname>, but you'd probably want to make sure it exists, first.
It may be that it's the Korn shell in which case try <ESC>k.
bash at least will allow you to switch modes with "set -o vi" or "set -o emacs".
Maybe you can use the !! command, to repeat the previous one.
Use "echo $SHELL" to see what your login shell is. If it's ksh or bash, try "set -o emacs". If that works, you'll be able to use ^P to go back a command. ^R lets you search for a command, ^F and ^B to move around within the command.
If you can´t change your default shell, or you just want to try out one that works, you can kick off any other shell from your command line. I recommend you tcsh, which will have good command line editing and history using the arrow keys. Type /bin/tcsh at your prompt to try it out. You can use the earlier responses to change your default shell if you like tcsh. Make sure your have the following in your $HOME/.cshrc file:
set filec
set history=1000 # or some other large number
set autologout=0 # if you are logging in remotely under your account.
I hope this helps.
You enable history temporarily if you use BASH by typing
HISTSIZE=1000
which will enable up and down keys and store 1000 commands. After termal disconnetion all history will be gone.
This works on solaris 10.
For permanent solution add these lines to ~/.bashrc
HISTSIZE=1000
HISTFILESIZE=1000