Compare commits

...

8 Commits

Author SHA1 Message Date
Muhammed Batuhan Aydın
5fed5f3776 Merge 5043f0d1fb into 88e5be6e4b 2024-10-03 17:50:38 -04:00
Julien Le Coupanec
88e5be6e4b Merge pull request #391 from Philip-Walsh/master
fix spelling and whitespace in cheatsheets
2024-08-24 23:07:02 +02:00
Philip-Walsh
2f9037b24e fix spelling and whitespace in cheatsheets 2024-08-22 12:02:10 +01:00
Julien Le Coupanec
0931c8fc67 Merge pull request #356 from rukywe/update-mysql-commands
Add Comprehensive MySQL Commands to Cheatsheet
2024-06-20 23:30:39 +02:00
Julien Le Coupanec
3c2016f645 Merge pull request #273 from erfanansari/update-vim
add more shortcuts to vim.txt
2024-06-20 23:29:42 +02:00
Kelvin Anigboro
4fdd37d875 Add Comprehensive MySQL Commands to Cheatsheet 2024-01-01 18:33:13 +00:00
Muhammed Batuhan Aydın
5043f0d1fb Change from .py format to .md format
It has been provided to make it more understandable by changing the written direction to md format. The aim here is to increase readability.
2023-03-03 19:13:45 +03:00
Erfan Ansari
707a1a22e2 add more shortcuts 2022-03-09 13:38:02 +03:30
12 changed files with 366 additions and 243 deletions

122
backend/django.md Normal file
View File

@@ -0,0 +1,122 @@
# CODING STYLE > MAKING YOUR CODE READABLE
1. Avoid abbreviating variable names.
2. Write out your function argument names.
3. Document your classes and methods.
4. Comment your code.
5. Refactor repeated lines of code into reusable functions or methods.
6. Keep functions and methods short. A good rule of thumb is that scrolling should not be necessary to read an entire function or method.
TIP: Use Flake8 for Checking Code Quality.
# CODING STYLE > THE WORD ON IMPORTS
Imports should be grouped in the following order:
1. Standard library imports.
2. Core Django imports.
3. Third-party app imports.
4. Imports from your apps.
Use explicit relative imports.
Avoid using import *
# CODING STYLE > OTHERS
Use underscores in URL pattern names rather than dashes.
# CODING STYLE > DATABASE
1. Register your app in admin file in your app folder to use admin panel in Django.
2. Create a superuser using command python manage.py createsuperuser.
3. Remember to migrate after you change anything in your models.py file.
4. Use /admin/ page to add data in your tables for testing purpose.
# Deployment
- Add your media, database, venv, __pycache__ to the .gitignore (there is a complete list that you can find here: https://github.com/jpadilla/django-project-template/blob/master/.gitignore).
- Keep migration files in the git (you will need to migrate them in target server).
- Don't run "makemigrations" in the target server (you will need to just run "migrate").
- `$ pip freeze > requirements.txt`
- Make appropriate changes in your project settings.py file (change DEBUG to False and etc).
- Push your code to your git-server.
- Pull your code in your target server.
- Give right permissions to the web-server (e.g. `$ chown www-data:www-data -R /var/www/myproject`).
- Make a new venv in the target server and activate it.
- `$ sudo pip install -r requirements.txt`
- `$ sudo ./venv/bin/python3 manage.py migrate`
- Restart your web-server (in case of Apache: `$ sudo service apache2 restart`).
# DJANGO-ADMIN
- `django-admin check`: Checks the entire Django project for potential problems.
- `django-admin changepassword <username>`: Allows changing a users password. It prompts you to enter a new password twice for the given user.
- `django-admin clearsessions`: Can be run as a cron job or directly to clean out expired sessions.
- `django-admin collectstatic`: Helps to collect all the static files in the one mentioned directory.
- `django-admin createsuperuser`: Creates a superuser account (a user who has all permissions).
- `django-admin compilemessages`: Compiles .po files to .mo files for use with built-in gettext support.
- `django-admin createcachetable`: Creates the tables needed to use the SQL cache backend.
- `django-admin dbshell`: Runs the command-line client for specified database, or the default database if none is provided.
- `django-admin diffsettings`: Displays differences between the current settings.py and Django's default settings.
- `django-admin dumpdata`: Output the contents of the database as a fixture of the given format (using each model's default manager unless --all is specified).
- `django-admin flush`: Removes ALL DATA from the database, including data added during migrations. Does not achieve a "fresh install" state.
- `django-admin inspectdb`: Introspects the database tables in the given database and outputs a Django model module.
- `django-admin loaddata`: Installs
# DJANGO-ADMIN CONTINUED
- `django-admin startapp`: <appname> # Create a new Django app named <appname> in the current directory.
- `django-admin startproject`: <projectname> # Create a new Django project named <projectname> in the current directory.
- `django-admin test`: # Discover and run tests in the specified modules or the current directory.
- `django-admin testserver`: # Runs a development server with data from the test database instead of the production database.
- `django-admin validate`: # Validates all installed models.
- `django-admin version`: # Display the Django version.
# DJANGO-DEBUG-TOOLBAR
Add 'debug_toolbar' to the installed apps in settings.py
In urls.py add the following lines:
from django.conf import settings
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
url(r'^debug/', include(debug_toolbar.urls)),
... the rest of your URLconf goes here ...
# DJANGO-REST-FRAMEWORK
To use Django Rest Framework, add it to your installed apps in settings.py:
INSTALLED_APPS = (
...
'rest_framework',
)
Add DRF's token authentication to your installed authentication classes:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
)
}
Use Django Rest Framework's serializers to format your API responses.
<br>
# Starting a django project in python3
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py; python3 get-pip.py
pip install virtualenv
mkdir django-projects
cd django-projects
virtualenv venv
source venv/bin/activate
pip install django
django-admin startproject myproject
django-admin startapp myapp
python manage.py runserver

View File

@@ -1,120 +0,0 @@
# *****************************************************************************
# CODING STYLE > MAKING YOUR CODE READABLE
# *****************************************************************************
# 1. Avoid abbreviating variable names.
# 2. Write out your function argument names.
# 3. Document your classes and methods.
# 4. Comment your code.
# 5. Refactor repeated lines of code into reusable functions or methods.
# 6. Keep functions and methods short. A good rule of thumb is that scrolling
# should not be necessary to read an entire function or method.
# TIP: Use Flake8 for Checking Code Quality.
# *****************************************************************************
# CODING STYLE > THE WORD ON IMPORTS
# *****************************************************************************
# Imports should be grouped in the following order:
# 1. Standard library imports.
# 2. Core Django imports.
# 3. Third-party app imports.
# 4. Imports from your apps.
# Use explicit relative imports.
# Avoid using import *
# *****************************************************************************
# CODING STYLE > OTHERS
# *****************************************************************************
# Use underscores in URL pattern names rather than dashes.
# *****************************************************************************
# CODING STYLE > DATABASE
# *****************************************************************************
# 1.Register your app in admin file in your app folder to use admin panel in django
# 2.Create a superuser using command python manage.py createsuperuser
# 3.Remember to migrate after you change anything in your models.py file
# 4.Use /admin/ page to add data in your tables for testing purpose
# *****************************************************************************
# Deployment
# *****************************************************************************
# add your media, database, venv, __pycache__ to the .gitignore (there is a compelete list that you can find here: https://github.com/jpadilla/django-project-template/blob/master/.gitignore)
# keep migration files in the git (you will need to migrate them in target server)
# don't run "makemigrations" in the target server (you will need to just run "migrate")
# $ pip freeze > requirements.txt
# make appropriate changes in your project settings.py file (change DEBUG to False and etc)
# push your code to your git-server
# pull your code in your target server
# give right permissions to the web-server (e.g. $ chown www-data:www-data -R /var/www/myproject)
# make a new venv in the target server and activate it
# $ sudo pip install -r requirements.txt
# sudo ./venv/bin/python3 manage.py migrate
# restart your web-server (in case of apache: $ sudo service apache2 restart)
# *****************************************************************************
# DJANGO-ADMIN
# *****************************************************************************
django-admin check # Checks the entire django project for potential problems
django-admin changepassword <username> # Allows changing a users password. It prompts you to enter a new password twice for the given user.
django-admin clearsessions # Can be run as a cron job or directly to clean out expired sessions.
django-admin collectstatic # Helps to collect all the static files in the one mentioned directory
django-admin createsuperuser # Creates a superuser account (a user who has all permissions).
django-admin compilemessages # Compiles .po files to .mo files for use with builtin gettext support
django-admin createcachetable # Creates the tables needed to use the SQL cache backend.
django-admin dbshell # Runs the command-line client for specified database, or the default database if none is provided.
django-admin diffsettings # Displays differences between the current settings.py and Django's default settings.
django-admin dumpdata # Output the contents of the database as a fixture of the given format (using each model's default manager unless --all is specified).
django-admin flush # Removes ALL DATA from the database, including data added during migrations. Does not achieve a "fresh install" state.
django-admin inspectdb # Introspects the database tables in the given database and outputs a Django model module.
django-admin loaddata # Installs the named fixture(s) in the database.
django-admin makemessages # Runs over the entire source tree of the current directory and pulls out all strings marked for translation. It creates (or updates) a message file in the conf/locale (in the django tree) or locale (for projects and applications) directory. You must run this command with one of either the --locale, --exclude, or --all options.
django-admin help # display usage information and a list of the commands provided by each application
django-admin makemigrations # create new migrations to the database based on the changes detected in the models
django-admin migrate # synchronize the database state with your current state project models and migrations
django-admin remove_stale_contenttypes # Deletes stale content types (from deleted models) in your database.y.
django-admin runserver <port> # start the development webserver at 127.0.0.1 with the port <port> default 8000
django-admin sendtestemail # Sends a test email to the email addresses specified as arguments.
django-admin shell # Runs a Python interactive interpreter. Tries to use IPython or bpython, if one of them is available. Any standard input is executed as code.
django-admin showmigrations # Shows all available migrations for the current project.
django-admin sqlflush # Returns a list of the SQL statements required to return all tables in the database to the state they were in just after they were installed.
django-admin sqlmigrate # Prints the SQL statements for the named migration.
django-admin sqlsequencereset # Prints the SQL statements for resetting sequences for the given app name(s).
django-admin squashmigrations # Squashes an existing set of migrations (from first until specified) into a single new one.
django-admin startapp <Appname> # create a new django application with the specified name
django-admin startproject <ProjectName> # create a new project directory structure
django-admin testserver # Runs a development server with data from the given fixture(s).
django-admin version # display the current django version
# *****************************************************************************
# Starting a django project in python3
# *****************************************************************************
# 1. $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py; python3 get-pip.py
# 2. $ pip install virtualenv
# 3. $ mkdir django-projects
# 4. $ cd django-projects
# 5. $ virtualenv venv
# 6. $ source venv/bin/activate
# 7. $ pip install django
# 8. $ django-admin startproject myproject
# 9. $ django-admin startapp myapp
# 10. $ python manage.py runserver

View File

@@ -16,3 +16,69 @@ GRANT ALL PRIVILEGES ON prospectwith.* TO 'power'@'localhost' WITH GRANT OPTION;
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; # Create user
mysql -u root -pmypassword -e "MY SQL QUERY" &>> query.log & disown # Run SQL query in the background
# *****************************************************************************
# Database and Table Operations
# *****************************************************************************
CREATE DATABASE database_name; # Create a new database
DROP DATABASE database_name; # Delete a database
CREATE TABLE table_name (column1 datatype, column2 datatype, ...); # Create a new table
DROP TABLE table_name; # Delete a table
SHOW TABLES; # Display all tables in the current database
DESCRIBE table_name; # Show the structure of a table
# *****************************************************************************
# Data Manipulation
# *****************************************************************************
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); # Insert data into a table
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; # Update existing data in a table
DELETE FROM table_name WHERE condition; # Delete data from a table
SELECT column1, column2, ... FROM table_name WHERE condition; # Select data from a table
# *****************************************************************************
# Backup and Restore
# *****************************************************************************
mysqldump -u username -p database_name table1 table2 > file.sql # Backup specific tables
mysql -u username -p database_name < file.sql # Restore specific tables
# *****************************************************************************
# User Management and Security
# *****************************************************************************
REVOKE privilege_type ON database_name.table_name FROM 'username'@'hostname'; # Revoke privileges from a user
DROP USER 'username'@'hostname'; # Delete a user
ALTER USER 'username'@'hostname' IDENTIFIED BY 'newpassword'; # Reset a user's password
# *****************************************************************************
# Performance and Maintenance
# *****************************************************************************
OPTIMIZE TABLE table_name; # Optimize a table
ANALYZE TABLE table_name; # Analyze a table for key distribution and storage optimization
CHECK TABLE table_name; # Check a table for errors
REPAIR TABLE table_name; # Repair a corrupted table
# *****************************************************************************
# Advanced Queries
# *****************************************************************************
SELECT ... FROM table1 JOIN table2 ON table1.column = table2.column; # Perform a join operation between two tables
SELECT ... FROM (SELECT ... FROM table_name) AS subquery; # Use a subquery within another query
SELECT column, COUNT(*) FROM table_name GROUP BY column; # Group results and use aggregate functions
# *****************************************************************************
# System Information
# *****************************************************************************
SELECT VERSION(); # Show the current version of MySQL
SELECT User, Host FROM mysql.user; # List all current MySQL users
# *****************************************************************************
# Miscellaneous
# *****************************************************************************
SET GLOBAL general_log = 'ON'; # Enable query logging
SHOW FULL PROCESSLIST; # Show the last queries executed in MySQL

View File

@@ -88,7 +88,7 @@ CHEATSHEET C#
string newStr = oldStr.Replace("old","new");
//IndexOf
//Finds the first ocurrence of a string in a larger string
//Finds the first occurrence of a string in a larger string
//Returns -1 if the string is not found
String.IndexOf(val, start, num)
val - string to search for
@@ -102,7 +102,7 @@ CHEATSHEET C#
String.Split(Char[]);
//ToCharArray
//Places selected characteres in a string in a char array
//Places selected characters in a string in a char array
String str = "AaBbCcDd";
//create array of 8 vowels
var chars = str.ToCharArray();
@@ -135,7 +135,7 @@ CHEATSHEET C#
6.1 TimeSpan Constructor
TimpeSpan(hour, minute, sec)
TimeSpan(hour, minute, sec)
TimeSpan timeS = new TimeSpan(10, 14, 50);
TimeSpan timeS_Hours = TimeSpan.FromDays(3640);
@@ -144,8 +144,8 @@ CHEATSHEET C#
Format item syntax: {index[,alignment][:format string]}
index - Specifies element in list of values to which format is applied
aligment - Indicates minimun width (in characters) to display value
format string - Contains the code which specififes the format of the displayed value
alignment - Indicates minimum width (in characters) to display value
format string - Contains the code which specifies the format of the displayed value
7.1 Numeric
@@ -293,7 +293,7 @@ CHEATSHEET C#
[access modifier] className (parameters) [:initializer]
initializer -base calls constructor in base class.
this calls constuctor within class.
this calls constructor within class.
public class nameClass : Initializer {
public className(dataType param1 , dataType param2, ...) : base(param1, param2)
@@ -313,8 +313,8 @@ CHEATSHEET C#
abstract must be implemented by subclass
Passing parameters:
1. By default, parametres are passed by value
2. Passing by reference: ref, in and out modifers
1. By default, parameters are passed by value
2. Passing by reference: ref, in and out modifiers
To pass a parameter by reference with the intent of changing the value, use the ref, or out keyword. To pass by reference with the intent of avoiding copying but not changing the value, use the in modifier

View File

@@ -524,14 +524,14 @@ Cyan='\033[0;36m' # Cyan
White='\033[0;97m' # White
# Additional colors
LGrey='\033[0;37m' # Ligth Gray
LGrey='\033[0;37m' # Light Gray
DGrey='\033[0;90m' # Dark Gray
LRed='\033[0;91m' # Ligth Red
LGreen='\033[0;92m' # Ligth Green
LYellow='\033[0;93m'# Ligth Yellow
LBlue='\033[0;94m' # Ligth Blue
LRed='\033[0;91m' # Light Red
LGreen='\033[0;92m' # Light Green
LYellow='\033[0;93m'# Light Yellow
LBlue='\033[0;94m' # Light Blue
LPurple='\033[0;95m'# Light Purple
LCyan='\033[0;96m' # Ligth Cyan
LCyan='\033[0;96m' # Light Cyan
# Bold

View File

@@ -397,8 +397,8 @@ d, t := doubleAndTriple(5)
_, t := doubleAndTriple(3)
// t = 9
// Functions can defer commands. Defered commands are
// runned in a stack order after the execution and
// Functions can defer commands. Deferred commands are
// ran in a stack order after the execution and
// returning of a function
var aux = 0
@@ -488,7 +488,7 @@ person3.Age // 0
## Maps
Maps are data structures that holds values assigneds to a key.
Maps are data structures that holds values assigned to a key.
```go
// Declaring a map
@@ -508,7 +508,7 @@ newYork // "EUA"
// Delete
delete(cities, "NY")
// Check if a key is setted
// Check if a key is set
value, ok := cities["NY"]
ok // false
value // ""

View File

@@ -308,7 +308,7 @@ for(dataType item : array) {
//Declare a variable, object name
String s;
//Invoke a contructor to create an object
//Invoke a constructor to create an object
s = new String ("Hello World");
//Invoke an instance method that operates on the object's value

View File

@@ -1,8 +1,8 @@
<?php
// Exit the file, string inside get's echo'ed
die("This file is not ment to be ran. ¯\_(ツ)_/¯");
exit("This file is not ment to be ran. ¯\_(ツ)_/¯");
die("This file is not meant to be ran. ¯\_(ツ)_/¯");
exit("This file is not meant to be ran. ¯\_(ツ)_/¯");
/**
* Printing
@@ -17,7 +17,7 @@ var_dump($arr); // Print anything, with type hints for any value and sizes
$string = 'Awesome cheatsheets';
str_contains($string, 'cheat'); // Find if the string contains the specified string (PHP >= 8.0)
str_replace('Awesome', 'Bonjour', $string); // Replace all occurence
str_replace('Awesome', 'Bonjour', $string); // Replace all occurrence
strcmp($string, 'Awesome cheatsheets'); // Compare two strings
strpos($string, 'a', 0); // Get position in the string
str_split($string, 2); // Split the string
@@ -541,7 +541,7 @@ u Pattern is treated as UTF-8
\w Any "word" character (a-z 0-9 _)
\W Any non "word" character
\s Whitespace (space, tab CRLF)
\S Any non whitepsace character
\S Any non whitespace character
\d Digits (0-9)
\D Any non digit character
. (Period) - Any character except newline

View File

@@ -71,7 +71,7 @@
| import | import libraries/modules/packages | import |
| from | import specific function/classes from modules/packages | import |
| try | this block will be tried to get executed | exception handling |
| except | is any exception/error has occured it'll be executed | exception handling |
| except | is any exception/error has occurred it'll be executed | exception handling |
| finally | It'll be executed no matter exception occurs or not | exception handling |
| raise | throws any specific error/exception | exception handling |
| assert | throws an AssertionError if condition is false | exception handling |

View File

@@ -20,13 +20,15 @@ e jump to end of words (punctuation considered words)
E jump to end of words (no punctuation)
b jump backward by words (punctuation considered words)
B jump backward by words (no punctuation)
ge jump backward to end of words
ge jump backward to end of a word
gE jump backwards to the end of a word (words can contain punctuation)
0 (zero) start of line
^ first non-blank character of line
$ end of line
- move line upwards, on the first non blank character
+ move line downwards, on the first non blank character
<enter> move line downwards, on the first non blank character
$ jump to the end of the line
g_ jump to the last non-blank character of the line
- move line upwards, on the first non-blank character
+ move line downwards, on the first non-blank character
<enter> move line downwards, on the first non-blank character
gg go to first line
G go to last line
ngg go to line n
@@ -38,10 +40,6 @@ nG go To line n
} move the cursor a paragraph forwards
]] move the cursor a section forwards or to the next {
[[ move the cursor a section backwards or the previous {
CTRL-f move the cursor forward by a screen of text
CTRL-b move the cursor backward by a screen of text
CTRL-u move the cursor up by half a screen
CTRL-d move the cursor down by half a screen
H move the cursor to the top of the screen.
M move the cursor to the middle of the screen.
L move the cursor to the bottom of the screen.
@@ -49,6 +47,16 @@ fx search line forward for 'x'
Fx search line backward for 'x'
tx search line forward before 'x'
Tx search line backward before 'x'
CTRL-y moves screen up one line
CTRL-e moves screen down one line
CTRL-u moves cursor & screen up ½ page
CTRL-d moves cursor & screen down ½ page
CTRL-b moves screen up one page, cursor to last line
CTRL-f moves screen down one page, cursor to first line
zz shift current line to middle of screen
z. same as zz but also jumps to the first non-black character
zt shift current line to top of screen
zb shift current line to bottom of screen
##############################################################################
@@ -60,8 +68,15 @@ Tx search line backward before 'x'
ma make a bookmark named a at the current cursor position
`a go to position of bookmark a
'a go to the line with bookmark a
`0 go to the position where Vim was previously exited
`" go to the position when last editing this file
`. go to the line that you last edited
`` go to the position before the last jump
g, go to newer position in change list
g; go to older position in change list
# Tip: To jump to a mark you can either use a backtick (`) or an apostrophe (').
# Using an apostrophe jumps to the beginning (first non-blank) of the line holding the mark.
##############################################################################
# INSERT MODE
@@ -70,10 +85,13 @@ ma make a bookmark named a at the current cursor position
i start insert mode at cursor
I insert at the beginning of the line
gi return to insert mode where you inserted text the last time
gI like "I", but always start in column 1
a append after the cursor
A append at the end of the line
o open (append) blank line below current line
O open blank line above current line
CTRL-o Temporarily enter normal mode to issue one normal-mode command(while in insert mode)
Esc exit insert mode
@@ -84,10 +102,25 @@ Esc exit insert mode
r replace a single character (does not use insert mode)
R enter Insert mode, replacing characters rather than inserting
J join line below to the current one
J join line below to the current one with one space in between
gJ join line below to the current one without space in between
cc change (replace) an entire line
cw change (replace) to the end of word
C change (replace) to the end of line
cw change (replace) to the end of word (same as ce)
2cw change (replace) repeat cw twice
ciw change (replace) word under the cursor
caw change (replace) word under the cursor and the space after or before it
ci" change (replace) word inside ""
cit change (replace) html tag content
cat change (replace) html tag
cis change (replace) sentence under the cursor
cas change (replace) sentence under the cursor and the space after or before it
cib change (replace) inside a block with ()
cab change (replace) a block with ()
ciB change (replace) inside a block with {}
caB change (replace) a block with {}
C change (replace) to the end of line(same as c$)
cG change (replace) to the end of the file
cgg change (replace) from first line to current line
ct' change (replace) until the ' character (can change ' for any character)
s delete character at cursor and substitute text
S delete line at cursor and substitute text (same as cc)
@@ -102,6 +135,7 @@ guiw make current word lowercase
gU$ make uppercase until end of line
gu$ make lowercase until end of line
>> indent line one column to right
>i{ indent everything in the {}
<< indent line one column to left
== auto-indent current line
ddp swap current line with next
@@ -110,6 +144,7 @@ ddkP swap current line with previous
:r [name] insert the file [name] below the cursor.
:r !{cmd} execute {cmd} and insert its standard output below the cursor.
# Tip: Instead of b or B one can also use ( or { respectively.
##############################################################################
# DELETING TEXT
@@ -118,10 +153,15 @@ ddkP swap current line with previous
x delete current character
X delete previous character
dw delete the current word
dw delete (cut) to the end of word (same as de)
diw delete (cut) word under the cursor
daw delete (cut) word under the cursor and the space after or before it
dap delete (cut) a paragraph
dd delete (cut) a line
dt' delete until the next ' character on the line (replace ' by any character)
D delete from cursor to end of line
dt' delete (cut) until the next ' character on the line (replace ' by any character)
dG delete (cut) to the end of the file
dgg delete (cut) from first line to current line
D delete (cut) from cursor to end of line (same as d$)
:[range]d delete [range] lines
@@ -136,6 +176,10 @@ yy yank (copy) a line
y$ yank to end of line
p put (paste) the clipboard after cursor/current line
P put (paste) before cursor/current line
gp put (paste) the clipboard after cursor and leave cursor after the new text
gP put (paste) before cursor and leave cursor after the new text
"+y yank into the system clipboard register
"+p paste from the system clipboard register
:set paste avoid unexpected effects in pasting
:registers display the contents of all registers
"xyw yank word into register x
@@ -147,6 +191,12 @@ P put (paste) before cursor/current line
"xgP just like "P", but leave the cursor just after the new text
:[line]put x put the text from register x after [line]
# Tip: if you are using vim extension on vs code, you can enable
"vim.useSystemClipboard": true
in setting.json, this will allow to Use system clipboard for unnamed register.
##############################################################################
# MACROS
@@ -157,6 +207,7 @@ qa start recording macro 'a'
q end recording macro
@a replay macro 'a'
@: replay last command
@@ repeat macro
##############################################################################
@@ -172,9 +223,11 @@ CTRL-v start visual block mode
O move to other corner of block
aw mark a word
ab a () block (with braces)
ab a {} block (with brackets)
aB a {} block (with brackets)
at a block with <> tags
ib inner () block
ib inner {} block
iB inner {} block
it inner <> block
Esc exit visual mode
VISUAL MODE COMMANDS
@@ -194,6 +247,7 @@ v% selects matching parenthesis
vi{ selects matching curly brace
vi" selects text between double quotes
vi' selects text between single quotes
gv reselect the last selected area
##############################################################################
# SPELLING
@@ -283,7 +337,6 @@ CTRL-w < increase window width
CTRL-w > decrease window width
CTRL-w = equal window
CTRL-w o close other windows
zz Centers the window to the current line
##############################################################################
@@ -306,12 +359,14 @@ clast display the last error
% show matching brace, bracket, or parenthese
gf edit the file whose name is under or after the cursor
gf edit the file whose name is under the cursor
gF edit the file whose name is under the cursor and jump to the line number
gd when the cursor is on a local variable or function, jump to its declaration
'' return to the line where the cursor was before the latest jump
gi return to insert mode where you inserted text the last time
CTRL-o move to previous position you were at
CTRL-i move to more recent position you were at
:set nu display numbers (short for :set number)
:set nonu hide numbers (short for :set nonumber)
##############################################################################