How to add 'Bourne Again Shell (bash)' to ignored_packages? - sublimetext3

I'm trying to add Bourne Again Shell (bash) to my list of ignored_packages.
I've tried Bourne Again Shell (bash), Bourne Again Shell, bash, Bash, and several other permutations. None of them work. What should be the correct value for this?
Additionally, if there's a way to list all the package names that ignored_packages recognizes, that would be super.

The list of packages is taken from:
The names of all of the folders in the Packages folder, which you can get to by using Preferences: Browse Packages from the command palette or the main menu
The names of all of the sublime-package files contained in the Installed Packages folder, which you can get to by going up one directory level from the Packages folder above
The names of all of the sublime-package files contained in the Packages folder inside of the directory that Sublime is installed in.
The OverrideAudit package (disclaimer: I am the author) includes a command named OverrideAudit: Package Report that lists the names of all packages as well.
All that said, if you're using Package Control, you can choose the Package Control: Disable Package command from the command palette and interactively select the package you want to disable; that command adds the package you select to the setting for you.
That's generally the preferred way to go if you're not sure, as the command hides the names of packages that it's not safe to ignore (such as the Default package and your User package).
It sounds like you may want to disable the bash syntax that ships with Sublime; if that's the case, it's stored in the ShellScript package.

Related

How to install sublime package without package control?

How can I install a sublimetext3 package manually, without the package control. I am trying to fix a bug in an existing package, therefore I need a way to test my changes.
what are the naming conventions to be followed when naming the zip file?
Where do I place it?
what other configurations I have to do?
Download the ZIP, and then place it in your Packages directory which can be found by doing Sublime Text -> Preferences -> Browse Packages...
what are the naming conventions to be followed when naming the zip file? Where do I place it? what other configurations I have to do?
This really depends on the specific package you are downloading. For some packages, you can name it whatever you want. For others, the name has to be exact. If you are downloading these packages manually from GitHub, I urge you to read the documentation in the README. They usually provide instructions for manual installation. For example, if you wanted to download the Spacegray theme manually, it tells you to download the ZIP, unzip the folder, and rename it to Theme - Spacegray.
Depending on your OS, your package directory might be one of these and for most of the packages, just extract the content to this folder (with it's root folder as the name)
Linux: ~/.config/sublime-text-3/Packages
OS X: ~/Library/Application Support/Subime Text 3/Packages
Windows: %APPDATA%\\Sublime Text 3
I am trying to fix a bug in an existing package, therefore I need a
way to test my changes.
I was in the same situation. The accepted answer didn't work for me because Package Control would automatically remove the folder. I found this to be helpful:
https://packagecontrol.io/docs/customizing_packages
Sublime Text 3 offers the most options for overriding a package. By
default, packages will be installed by placing a .sublime-package file
in the Install Packages/ folder. Then users may override individual
files in the package by creating a folder Packages/{Package Name}/ and
placing edited files in there.
Another approach is PackageResourceViewer, which allows you to extract and override individual files from packages, including the built-in packages.
The best answer I think, so far, is this one by #Andreas Haferburg.
The most-upvoted answer also has some really useful information, such as the link to the spacegray package which states:
Manual
You can also install the theme manually:
Download the .zip
Unzip and rename the folder to Theme - Spacegray
Copy the folder into Packages directory, which you can find using the menu item Sublime Text -> Preferences -> Browse Packages...
That is where I first learned about the existence of the Packages folder and how to find its path.
Using those answers together, plus putting in about 1 weekend worth of work into learning about how Sublime Text packages and syntax highlighting work, I wrote the following "Developer Notes & Package Development Tutorial", on GitHub, as well as these "manual installation" instructions.
In short, to "install a package" withOUT Package Control, all you need to do is put the package into your Sublime Text Packages folder, whose path can be found by going to Preferences --> Browse Packages.... The folder name can be anything. It only needs to match what is inside the Installed Packages dir (which is at the same level as the Packages dir) if you want to override an already-installed package which was previously installed by Package Control in "packed" (zip file) format.
The main link you should study, aside from my tutorial, is this: https://packagecontrol.io/docs/customizing_packages.
1. How to manually install a package
Here are some of the key quotes and instructions from my manual installation instructions and tutorial.
Again, note that I am only requiring that the name in the Packages folder be something specific like gcode in the instructions below because my instructions are intended to override a Package-Control-installed package the reader may already have installed. If you want to install for the first time, or make a new package, the folder name you use inside the Packages folder can be anything.
2. Manual installation
In Sublime Text, find the path to your Packages folder by clicking Preferences --> Browse Packages.... This will open up your GUI file manager to the path where Sublime Text packages are stored. For me on Linux Ubuntu 20.04, that's /home/gabriel/.config/sublime-text-3/Packages (even though I am running Sublime Text 4).
Now, extract this package to that folder.
Option 1: the GUI way: click the green "Code" button above --> "Download ZIP" --> save the zip file, extract it to your Packages path above, and rename it to gcode.
OR Option 2 [what I prefer]: the command-line way:
# --------------
# Option 2.A: clone the repo directly into your "Packages" dir
# --------------
# cd to the Packages dir (change this path according to your Packages path above)
cd "$HOME/.config/sublime-text-3/Packages"
# clone the repo
git clone https://github.com/ElectricRCAircraftGuy/sublime_gcode.git
# rename the repo dir to "gcode"
mv sublime_gcode gcode
# --------------
# OR Option 2.B [what I prefer]: clone the repo into wherever you want, and then
# symlink it into your "Packages" dir
# --------------
# clone repo into ~/dev
mkdir -p ~/dev
cd ~/dev
git clone https://github.com/ElectricRCAircraftGuy/sublime_gcode.git
# now symlink it into your Packages dir
ln -si ~/dev/sublime_gcode ~/.config/sublime-text-3/Packages/gcode
That's it! The gcode entry is now instantly available in your syntax highlighting menu.
Developer Notes & Package Development Tutorial
...
...
...
Sublime Text packages and syntax highlighting--how it all works
And here are some really important notes about Sublime Text packages and how Package Control works:
1. Sublime Text packages
Any folder inside of your Sublime Text Packages folder (found via Preferences --> Browse Packages...) is automatically instantly loaded by Sublime Text as a "package".
Packages installed by the Package Control package, however, come in two types:
Packed: most packages installed by Package Control are "packed" into a zip file named packageName.sublime-package and are located inside the Installed Packages dir which is at the same level as the Packages dir.
If you manually create a dir inside the Packages dir and name it packageName (to match the packed file above), then any files in it with the same name as those in the packed package will override those in the packed package. See the "Overrides" section here: https://packagecontrol.io/docs/customizing_packages.
Unpacked: any package which is installed in the Packages dir is unpacked.
Developers can tell Package Control to unpack a package installed by Package Control by placing a file named .no-sublime-package at the root of their repo. See here: https://packagecontrol.io/docs/submitting_a_package.
Unpacked packages are required if they contain binary executables which need to be run by the system, for instance, as they apparently can't run from inside the packed zip file.
2. Syntax highlighting
Hopefully I got all of this straight.
If you want to learn more about Syntax Highlighting in Sublime Text, and how it maps to scope entries in your Color Scheme, read my tutorial.
2. Test your changes
I am trying to fix a bug in an existing package, therefore I need a way to test my changes.
See also this section in my tutorial:
To modify and test changes to this package locally...
...in case you'd like to change it or contribute to it, follow the "manual installation" instructions above. If you have already installed it via Package Control, then what is in your /home/$USERNAME/.config/sublime-text-3/Packages/gcode folder will override what is in your /home/$USERNAME/.config/sublime-text-3/Installed Packages/gcode.sublime-package zip file which Package Control installed, so long as the folder and file names are the same.
Modify any files in the Packages/gcode dir as desired. Each time you save, the changes will instantly be reflected in all Sublime Text editors you have open. As a quick test:
Open a gcode file.
Click your cursor on some text in the file.
Use the Tools --> Developer --> Show Scope Name trick to see what the scope is for that text.
Open the corresponding *.sublime-syntax file.
Change or delete the regular expression in the match entry for that corresponding scope you just found, so that it no longer matches the text on which you placed your cursor.
Save the *.sublime-syntax file and you will instantly see the formatting of that text in the gcode file change.
Undo your change to the match entry and save again. The formatting will return to how it was.
Go to Preferences --> Customize Color Scheme, and add a custom rules entry for that scope, with new formatting for that scope. Save it and watch the formatting instantly change again. Delete that custom entry when done, if desired.

installed ghc from PPA 'no such file or directory'

I added GHC-7.10.1 from this ppa:hvr/ghc # https://launchpad.net/~hvr/+archive/ubuntu/ghc
However I can't seem to find ghc from the command line. any suggestions?
me#ubuntu:~/Documents/haskell$ ghc
bash: /usr/bin/ghc: No such file or directory
As the linked page describes
The packages install into /opt/ghc/$VER/ so in order to use them, the easiest way is to bring a particular GHC version into scope by placing the respective /opt/ghc/$VER/bin folder early into the PATH environment variable.

multiple binaries with same name in ubuntu/linux

I have recently installed a webframework play (http://www.playframework.com/) and want to have the play executable in the system path ie $PATH. But ubuntu already defines a command called play. How do I overwrite the system defined command with my framework binary path so that command play on commandline calls my framework rather than the old application.
Installation: I downloaded zipped file of the framework and upzipped in one of my personal folder which contains the docs and the executable.
Never alter the contents of installed packages. Such changes can provoke hard to find problems in the system and anyway, they will most likely be overwritten again in subsequent updates. There are other alternatives:
obviously you can chose another name for your executable
place the executable in another part of your $PATH if its a "personal installation", typically ~/bin is used for such approach. Remember that the order of entries in the $PATH variable is important, first come first serve.
use the traditional /usr/local/bin location for locally added "wild" installations, this way there is some form of clean separation between clean packages and wild installed files inside the system
store your software in some other location and prepend that to your personal or system wide $PATH variable
store your executable under another name and create an alias (see man alias for an explanation) for it which allows to call it by some name that "hides" the original command this way. For this the executable can be addressed with an absolute path, so it dies not have to be found inside the $PATH variable.
In my personal opinion options 2. and 5. and the best if it comes to "personal installations".
If you are sure you'll never use the original play command, you could just remove the binary. But in general, this isn't a good idea, since some system component you don't think of might need it, and the next update will probably restore it.
The best thing to do is to prepend the directory of your play command to the PATH, for example, using PATH=/opt/framework/bin:$PATH in your .profile (assuming your play command installs to /opt/framework/bin/play), or the script that starts your web server, or wherever you need your play command.
Remember that does not make your play command global. A common mistake is to add the path in their .profile file, then call the program from crontab - crontab scripts will not execute .profile or .bashrc.

How to install packages in Tcl?

I am trying to install critlib on my machine (http://equi4.com/critlib/), so that I can create zip files dynamically in Tcl.
The issue is that I have no idea how to install Tcl packages. Is there a certain place you put the folders? Is there a command like yum I can use?
I've skimmed the various Tcl beginners guides and read the sections about packages, but every source always seems to be assuming knowledge I lack.
Yes, there are some directories. To list them, execute tclsh and enter
join $auto_path \n
In each of that directory and its subdir (but not the sub-sub-dir) tcl looks for a file called pkgIndex.tcl.
So if you got an archive, extract it, look where the pkgIndex.tcl is, and copy the directory where this file is in to one of the paths $auto_path. The problem is only to select the appropiate path from the output of step 1.
If you are not sure what the appropiate directory is, I suggest editing the output from the first step into your question.
If you are using vscode and made virtual environment then you can do it as follows
"pipenv install tcl"

Choosing between multiple executables with same name in Linux

The system I am using has gnuplot installed in /usr/bin. I don't have root, but I needed a newer version of gnuplot, so I installed it to $HOME/usr/bin.
I added $HOME/usr/bin to my path, but it still executes the one in /usr/bin if I just use the gnuplot command. I'd rather not have to specify $HOME/usr/bin/gnuplot every time I have to use it.
How do I tell Linux to use the one in my home directory, and not the one in /usr/bin?
Executables are found in PATH order. You need to prepend ${HOME}/usr/bin to your path, like so:
export PATH="${HOME}/usr/bin:$PATH"
Executables are found in PATH order. Your PATH apparently is set up such that /usr/bin precedes ~/usr/bin/.
Besides modifying the PATH as has been explained, you can also use aliases like this (in BASH)
alias gn=$HOME/usr/bin/gnuplot
then you just run it with
gn
What Bombe says is ok. I would add that you should declare your user specific PATH entries inside your user's bashrc ($HOME/.bashrc), so your PATH settings only apply to your user.

Resources