https://gist.github.com/docPhil99/c5d41af8ab017e77476bf9199ce849a6
vim cheat-sheet
A minimal cheat-sheet to get by in vim (vi /gvim)
There’s no doubt that vim/vi or gvim is an incredibly powerful editor. it’s also very lightweight and fast, making it an ideal editor on the Raspberry Pi. It does however have a learning curve. This in a minimal cheat-sheet of commands. The ones in bold are I think the ones you need to learn to be able to use it at a basic level. Also try running vimtutor
from the command line for a tutorial.
Esc key – Normal mode
Inserting text
a -append
i – insert
o – open (inserts line below current line, O open above current line)
r – replace (replaces the character under the cursor with the next one entered,
R – replace mode (overwrite text until Esc pressed)
ce – change (deletes to end of word and then switches to insert mode) c$ deletes the rest of the line
Deleting text
x -delete character
dw – delete word (d2w delete two words)
de – delete from cursor to end of word
d$ – delete from cursor to end of line
dd – delete the line (2dd delete two lines)
Undo
u – undo
U – undo all changes on a line
Put, Past and Cut
p – put the contents of the buffer (paste) (this is the last thing deleted or yanked)
v – visual selections mode (highlights text for eg deletions or write to file with :w FILENAME)
y – yank (copies highlighted text), yw – yanks word
Moving about
gg – go to start of the file
GG – go to end of the file
504G – goto line 504
/ – search, n find next, N find previous
% – find matching bracket (,[,{
0 – move to start of the line, ^ move to first non space character.
$ – move to end of the line
Status
^G – file and position status
! – execute external command e.g. !ls
Writing and Reading
:w – save the file
:w FILENAME – save as FILENAME
:r FILENAME – inserts content of file here, you can also insert output of commands eg :r !ls
:q! -quit discarding changes
: x – quit saving changes (if there are any as opposed to :wq which always saves)
Installing MySQL with macports
This is my notes for installing MySQL on mac. It’s mainly taken from https://trac.macports.org/wiki/howto/MySQL
sudo port install mysql56-server
which installs version 5.6, but you could check this was the latest version by search the output of
port search mysql
You need to enable the port by adding it to the system path, the easiest way is by
sudo port select mysql mysql56
Then set up the database
sudo -u _mysql mysql_install_db sudo chown -R _mysql:_mysql /opt/local/var/db/mysql56/ sudo chown -R _mysql:_mysql /opt/local/var/run/mysql56/ sudo chown -R _mysql:_mysql /opt/local/var/log/mysql56/
Then start the database
sudo port load mysql56-server
We need to set a root password
/opt/local/lib/mysql56/bin/mysqladmin -u root -p password
You will be prompted for the old password, which currently blank so just press enter, then add your new password.
You can then add some basic security to the database by running
/opt/local/bin/mysql_secure_installation
If you need the server to connect to the network (including it seems the loopback localhost – although I’m sure there is away round this), you need to edit the configuration file in /opt/local/etc/mysql56/my.conf. The file simply calls the default config file, macports-default.cnf, which stops only has skip-network in it. Don’t edit the default since an update may overwrite it, simply edit comment out the include line with a ! symbol.
To enable a C++ interface to MySQL install
sudo port install mysql5-connector-cpp
note that this also a port mysql-connector-cpp without that 5, which is broken! A half hour of my life I’ll never get back. Unfortunately this port is out of date and links against MySQL 5.1. It can still be used with 5.6 but it does mean macports will also install 5.1 on your system.
To edit the config file and your databases there is a GUI tool MySQL Workbench
Mac Ports Cheat Sheet
It’s worth reading the mac ports guide here, but here is my cut down cheat sheet of commands I actually use.
To install a port, e.g opencv
sudo port install opencv
To update ports definition list
sudo port selfupdate
Once, that’s finished you can update the outdated ports (this might take sometime depending on the number of updates)
sudo port upgrade outdated
or you can get a list of the outdated ports
port outdated
and upgraded them manually
sudo port upgrade opencv
This should also upgrade dependencies.
To get a list of installed ports
port installed
To search for a port, eg, PHP you could try
port search php
This will give you hundreds of port that mention PHP in their description. You can filter this, for example
port search --name --glob 'php*'
will return only the ports that start with php.
port info opencv
returns information about the opencv port (the lastest version, so watch out if your ports are out of date). A list of variants can be obtained with
port variants opencv
A port variant can be installed using the syntax:
sudo port install opencv +java
This installs the variant of opencv with java bindings. To see which variant is installed type:
port installed opencv
this lists the variant installed, plus the inactive versions of the library.
If a port fails to build it might be worth cleaning up first by running
sudo port clean opencv
and trying again.
To find out what and where port has installed files run
port contents opencv
To remove a port you use either of
sudo port uninstall opencv sudo port uninstall --follow-dependents opencv
The second option removes the installed dependents as long as no other port is using them. If you don’t use the latter there will be a number of ports left on your system that you didn’t manually install. These are known as leaves and you can list or remove them with
port echo leaves sudo port uninstall leaves
You might need to repeat the process since uninstalling leaves may create new leaves!
Port will also leave the outdated ports on your system. To remove them use
sudo port uninstall inactive