Compare commits

..

6 Commits

Author SHA1 Message Date
Ruhul Amin Parvez
2702ad96b2 Merge 67261bfd41 into 10872e02d1 2024-06-12 22:20:03 +00:00
Ruhul Amin Parvez
67261bfd41 Update README.md 2021-03-14 00:26:03 +06:00
Ruhul Amin Parvez
2ac47e71e6 typo mistake 2021-03-14 00:22:45 +06:00
Ruhul Amin Parvez
c8dcfa1a68 PostgreSQL cheat sheet 2021-03-12 18:38:08 +06:00
Ruhul Amin Parvez
c315481b0f Update postgresql.md 2021-03-12 18:28:24 +06:00
ruhul amin parvez
4f4d2c1f7a Create PostgreSQL Cheat Sheet 2021-03-12 18:20:58 +06:00
14 changed files with 618 additions and 251 deletions

View File

@@ -89,6 +89,7 @@ Feel free to take a look. You might learn new things. They have been designed to
#### SQL
- [MySQL](databases/mysql.sh)
- [PostgreSQL](databases/postgresql.md)
#### NoSQL

View File

@@ -16,69 +16,3 @@ 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

494
databases/postgresql.md Normal file
View File

@@ -0,0 +1,494 @@
## ❄ PostgreSQL CHEAT SHEET
### 🧐 What is PostgreSQL?
`PostgreSQL/Postgres` is a free open-source relational database management system(RDBMS) emphasizing extensibility and SQL compliance. It was originally named `POSTGRES`, referring to it's origins as a successor to the Ingres database developed at the University of California, Berkeley.
### 🤔 What is the use of PostgreSQL?
It is a highly stable database management system, backend by more than 20 years of community development which has contributed to it's high levels of resilience, integrity, and correctness. PostgreSQL is used as the primary data store or data warehouse for many web, mobile, geospatial, and analytics applications.
## 📚 PostgreSQL Table of Contents
### 1⃣ QUERYING DATA FROM A TABLE
<details>
<summary>View Queries</summary>
```
SELECT c1, c2 FROM t;
```
Query data in columns c1, c2 from a table
<hr>
```
SELECT * FROM t;
```
Query all rows and columns from a table
<hr>
```
SELECT c1, c2 FROM t
WHERE condition;
```
Query data and filter rows with a condition
<hr>
```
SELECT DISTINCT c1 FROM t
WHERE condition;
```
Query distinct rows from a table
<hr>
```
SELECT c1, c2
FROM t
ORDER BY c1 ASC[DESC];
```
Sort the result set in ascending or descending order
<hr>
```
SELECT c1, c2
FROM t
ORDER BY c1
LIMIT n OFFSET offset;
```
Skip offset of rows and return the next n rows
<hr>
```
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1;
```
Group rows using in aggregate function
<hr>
```
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
HAVING condition;
```
Filter groups using HAVING clause
</details>
### 2⃣ QUERYING FROM MULTIPLE TABLES
<details>
<summary>View Queries </summary>
```
SELECT c1, c2
FROM t1
INNER JOIN t2 ON condition;
```
Inner join t1 and t2
<hr>
```
SELECT c1, c2
FROM t1
LEFT JOIN t2 ON condition;
```
Left join t1 and t1
<hr>
```
SELECT c1, c2
FROM t1
RIGHT JOIN t2 ON condition;
```
Right join t1 and t2
<hr>
```
SELECT c1, c2
FROM t1
FULL OUTER JOIN t2 ON condition;
```
Perform full outer join
<hr>
```
SELECT c1, c2
FROM t1
CROSS JOIN t2;
```
Produce a Cartesian product of rows in tables
<hr>
```
SELECT c1, c2
FROM t1, t2;
```
Another way to perform cross join
<hr>
```
SELECT c1, c2
FROM t1 A
INNER JOIN t2 B ON condition;
```
Join t1 to itself using INNER JOIN clause
</details>
### 3⃣ USING SQL OPERATORS
<details>
<summary>View Queries </summary>
```
SELECT c1, c2
FROM t1
UNION [ALL]
SELECT c1, c2 FROM t2;
```
Combine rows from two queries
<hr>
```
SELECT c1, c2 FROM t1
INTERSECT
SELECT c1, c2 FROM t2;
```
Return the intersection of two queries
<hr>
```
SELECT c1, c2 FROM t1
EXCEPT
SELECT c1,c2 FROM t2;
```
Subtract a result set from another result set
<hr>
```
SELECT c1, c2 FROM t
WHERE c1[NOT] LIKE pattern;
```
Query rows using pattern matching %, _
<hr>
```
SELECT c1, c2 FROM t
WHERE c1[NOT] IN value_list;
```
Query rows in a list
<hr>
```
SELECT c1, c2 FROM t
WHERE c1 BETWEEN low_value AND high_value;
```
Query rows between two values
<hr>
```
SELECT c1, c2 FROM t
WHERE c1 IS [NOT]NULL;
```
Check if values in a table is NULL or not
</details>
### 4⃣ MANAGING TABLES
<details>
<summary>View Queries</summary>
```
CREATE TABLE(
id SERIAL PRIMARY KEY,
name VARCHAR NOT NULL,
price NUMERIC(10,2) DEFAULT 0
);
```
Create a new table with three columns
<hr>
```
DROP TABLE t CASCADE;
```
Delete the table from the database
<hr>
```
ALTER TABLE t ADD column;
```
Add a new column to the table
<hr>
```
ALTER TABLE t DROP COLUMN c;
```
Drop column c from the table
<hr>
```
ALTER TABLE t ADD contraint;
```
Add a constraint
<hr>
```
ALTER TABLE t DROP constraint;
```
Drop a constraint
<hr>
```
ALTER TABLE t1 RENAME TO t2;
```
Rename a table from t1 to t2
<hr>
```
ALTER TABLE t1 RENAME c1 to c2;
```
Rename column c1 to c2
<hr>
```
TRUNCATE TABLE t CASCADE;
```
Remove all data in a table
</details>
### 5⃣ USING SQL CONSTRAINTS
<details>
<summary>View Queries</summary>
```
CREATE TABLE t(
c1 INT, c2 INT, c3 VARCHAR,
PRIMARY KEY(c1, c2)
);
```
Set c1 and c2 as a primary key
<hr>
```
CREATE TABLE t1(
c1 SERIAL PRIMARY KEY,
c2 INT,
FOREIGN KEY (c2) REFERENCES ts(c2)
);
```
Set c2 column as a foreign key
<hr>
```
CREATE TABLE t(
c1 INT, c1 INT,
UNIQUE(c2, c3)
);
```
Make the values in c1 and c2 unique
<hr>
```
CREATE TABLE t(
c1 INT, c INT,
CHECK(c1 > 0 AND c1 >= c2)
);
```
Ensure c1 > 0 and values in c1 >= c2
<hr>
```
CREATE TABLE t(
c1 SERIAL PRIMARY KEY,
c2 VARCHAR NOT NULL
);
```
Set values in c2 column not null
</details>
### 6⃣ MODIFIYING DATA
<details>
<summary>View Queries</summary>
```
INSERT INTO t(column_list)
VALUES(value_list);
```
Insert one row into a table
<hr>
```
INSERT INTO t(column_list)
VALUES(value_list),
(value_list), ....;
```
Insert multiple rows into a table
<hr>
```
INSERT INTO t1(column_list)
SELECT column_list
FROM t2;
```
Insert rows from t2 into t1
<hr>
```
UPDATE t
SET c1 = new_value;
```
Update new value in the column c1 for all rows
<hr>
```
UPDATE t
SET c1 = new_value,
c2 = new_value
WHERE condition;
```
Update values in the column c1, c2 that match the condition
<hr>
```
DELETE FROM t;
```
Delete all data in a table
<hr>
```
DELETE FROM t
WHERE condition;
```
Delete subset of rows in a table
</details>
### 7⃣ MANAGING VIEWS
<details>
<summary>View Queries</summary>
```
CREATE VIEW v(c1, c2)
AS
SELECT c1, c2
FROM t;
```
Create a new view that consists of c1 and c2
<hr>
```
CREATE VIEW v(c1, c2)
AS
SELECT c1, c2
FROM t
WITH[CASCADED | LOCAL]CHECK OPTION;
```
Create a new view with check option
<hr>
```
CREATE RECURSIVE VIEW v
AS
select-statement --anchor part
UNION[ALL]
select-statement; --recursive part
```
Create a recursive view
<hr>
```
CREATE TEMPORARY VIEW v
AS
SELECT c1, c2
FROM t;
```
Create a temporary view
<hr>
```
DROP VIEW view_name;
```
Delete a view
</details>
### 8⃣ MANAGING INDEXES
<details>
<summary>View Queries</summary>
```
CREATE INDEX inx_name
ON t(c1, c2);
```
Create an index on c1 and c2 of the table t
<hr>
```
CREATE UNIQUE INDEX inx_name
ON t(c3, c4);
```
Create unique index on c3, c4 of the table t
<hr>
```
DROP INDEX idx_name;
```
Drop an index
</details>
### 9⃣ MANAGING TRIGGERS
<details>
<summary>View Queries</summary>
```
CREATE OR MODIFY TRIGGER trigger_name
WHEN EVENT
ON table_name TRIGGER_TYPE
EXECUTE stored_procedure;
```
Create or modify a trigger
<hr>
```
WHEN
```
- BEFORE - invoke before the event occurs
- AFTER - invoke after the event occurs
<hr>
```
EVENT
```
- INSERT - invoke for INSERT
- UPDATE - invoke for UPDATE
- DELETE - invoke for DELETE
<hr>
```
TRIGGER_TYPE
```
- FOR EACH ROW
- FOR EACH STATEMENT
<hr>
```
CREATE TRIGGER before_insert_person
BEFORE INSERT
ON person FOR EACH ROW
EXECUTE stored_procedure;
```
Create a trigger invoked before a new row is inserted into the person table
<hr>
```
DROP TRIGGER trigger_name
```
Delete a specific trigger
</details>
### 🔟 SQL AGGREGATE FUNCTIONS
<details>
<summary>View Queries</summary>
- AVG - returns the average of a list
- COUNT - returns the number of elements of a list
- SUM - returns the total of a list
- MAX - returns the maximum value in a list
- MIN - returns the minimum value in a list
</details>

View File

@@ -88,7 +88,7 @@ CHEATSHEET C#
string newStr = oldStr.Replace("old","new");
//IndexOf
//Finds the first occurrence of a string in a larger string
//Finds the first ocurrence 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 characters in a string in a char array
//Places selected characteres 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
TimeSpan(hour, minute, sec)
TimpeSpan(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
alignment - Indicates minimum width (in characters) to display value
format string - Contains the code which specifies the format of the displayed value
aligment - Indicates minimun width (in characters) to display value
format string - Contains the code which specififes 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 constructor within class.
this calls constuctor 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, parameters are passed by value
2. Passing by reference: ref, in and out modifiers
1. By default, parametres are passed by value
2. Passing by reference: ref, in and out modifers
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' # Light Gray
LGrey='\033[0;37m' # Ligth Gray
DGrey='\033[0;90m' # Dark Gray
LRed='\033[0;91m' # Light Red
LGreen='\033[0;92m' # Light Green
LYellow='\033[0;93m'# Light Yellow
LBlue='\033[0;94m' # Light Blue
LRed='\033[0;91m' # Ligth Red
LGreen='\033[0;92m' # Ligth Green
LYellow='\033[0;93m'# Ligth Yellow
LBlue='\033[0;94m' # Ligth Blue
LPurple='\033[0;95m'# Light Purple
LCyan='\033[0;96m' # Light Cyan
LCyan='\033[0;96m' # Ligth Cyan
# Bold

View File

@@ -397,8 +397,8 @@ d, t := doubleAndTriple(5)
_, t := doubleAndTriple(3)
// t = 9
// Functions can defer commands. Deferred commands are
// ran in a stack order after the execution and
// Functions can defer commands. Defered commands are
// runned 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 assigned to a key.
Maps are data structures that holds values assigneds to a key.
```go
// Declaring a map
@@ -508,7 +508,7 @@ newYork // "EUA"
// Delete
delete(cities, "NY")
// Check if a key is set
// Check if a key is setted
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 constructor to create an object
//Invoke a contructor to create an object
s = new String ("Hello World");
//Invoke an instance method that operates on the object's value

View File

@@ -95,9 +95,3 @@ arr.reduce(callback[, initialValue]) // Apply a function against
arr.reduceRight(callback[, initialValue]) // Apply a function against an accumulator and each value of the array (from right-to-left) as to reduce it to a single value.
arr.some(callback[, initialValue]) // Returns true if at least one element in this array satisfies the provided testing function.
arr.values() // Returns a new Array Iterator object that contains the values for each index in the array.
// String methods
String.charAt(index) // Returns the character at the specified index in a string.
String.indexOf(character) // Returns the index of the first occurrence of a specified value in a string.
String.substring(starting_index, ending_index) // Returns a new string that is a subset of the original string.
String.substring(starting_index) // Returns a substring from starting index to last index of string.

View File

@@ -1,8 +1,8 @@
<?php
// Exit the file, string inside get's echo'ed
die("This file is not meant to be ran. ¯\_(ツ)_/¯");
exit("This file is not meant to be ran. ¯\_(ツ)_/¯");
die("This file is not ment to be ran. ¯\_(ツ)_/¯");
exit("This file is not ment 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 occurrence
str_replace('Awesome', 'Bonjour', $string); // Replace all occurence
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 whitespace character
\S Any non whitepsace 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 occurred it'll be executed | exception handling |
| except | is any exception/error has occured 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

@@ -21,7 +21,6 @@ cat /proc/<process_id>/maps # Show the current virtual memory usage of a Linux
ip r # Display ip of the server
lsof -i :9000 # List process running on port 9000
kill -9 $(lsof -t -i:PORT) # Kill the process running on whichever port specified
journalctl -u minio.service -n 100 --no-pager # List last 100 logs for specific service

View File

@@ -20,15 +20,13 @@ 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 a word
gE jump backwards to the end of a word (words can contain punctuation)
ge jump backward to end of words
0 (zero) start of line
^ first non-blank character of line
$ 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
$ 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
gg go to first line
G go to last line
ngg go to line n
@@ -40,6 +38,10 @@ 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.
@@ -47,16 +49,6 @@ 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
##############################################################################
@@ -68,15 +60,8 @@ zb shift current line to bottom of screen
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
@@ -85,13 +70,10 @@ g; go to older position in change list
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
@@ -102,25 +84,10 @@ 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 with one space in between
gJ join line below to the current one without space in between
J join line below to the current one
cc change (replace) an entire 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
cw change (replace) to the end of word
C change (replace) to the end of 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)
@@ -135,7 +102,6 @@ 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
@@ -144,7 +110,6 @@ 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
@@ -153,15 +118,10 @@ ddkP swap current line with previous
x delete current character
X delete previous character
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
dw delete the current word
dd delete (cut) a 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$)
dt' delete until the next ' character on the line (replace ' by any character)
D delete from cursor to end of line
:[range]d delete [range] lines
@@ -176,10 +136,6 @@ 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
@@ -191,12 +147,6 @@ gP put (paste) before cursor and leave cursor after the new tex
"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
@@ -207,7 +157,6 @@ qa start recording macro 'a'
q end recording macro
@a replay macro 'a'
@: replay last command
@@ repeat macro
##############################################################################
@@ -223,11 +172,9 @@ 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)
at a block with <> tags
ab a {} block (with brackets)
ib inner () block
iB inner {} block
it inner <> block
ib inner {} block
Esc exit visual mode
VISUAL MODE COMMANDS
@@ -247,7 +194,6 @@ 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
@@ -337,6 +283,7 @@ 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
##############################################################################
@@ -359,14 +306,12 @@ clast display the last error
% show matching brace, bracket, or parenthese
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
gf edit the file whose name is under or after the cursor
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)
##############################################################################