برنامه نویسی

تسلط بر Vim – DevOps ضروری!

【👨🏻‍💻 یوتیوب】
سایر مطالب مربوط به DevOps را تماشا کنید – AWS

شروع

نمودارهای حرکتی

▼/▶ Cursor   ▽/▷ Target

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

حرکات چپ راست

┌───────────── |      
├───────────── 0      $ ──────────────┐ 
│  ┌────────── ^      fe ────────┐    │
│  │  ┌─────── Fo     te ───────┐│    │
│  │  │┌────── To     30| ───┐  ││    │
│  │  ││ ┌──── ge     w ───┐ │  ││    │
│  │  ││ │ ┌── b      e ─┐ │ │  ││    │
│  │  ││ │ │  ┌h      l┐ │ │ │  ││    │
▽  ▽  ▽▽ ▽ ▽  ▽▼      ▼▽ ▽ ▽ ▽  ▽▽    ▽
   echo "A cheatsheet from quickref.me"

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

حرکات بالا به پایین

                 - SCREEN 1 START
   ┌─┬─────────▷ #!/usr/bin/python
   │ │     ┌───▷     
   │ │     │     print("Hello")
   │ │     { } ▶ print("Vim")
   │ │       │   print("!")
   │ │       └─▷    
   │ │ ┌───┬───▷ print("Welcome")
G gg H M L k j ▶ print("to")
│        │   └─▷ print("quickref.me")
│        │       print("/vim")
│        │     
│        └─────▷ 
│                - SCREEN 1 END
└──────────────▷ print("SCREEN 2")

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

حرکات

میانبر شرح
سخنرانی j
/ نیم صفحه بالا/پایین
/ صفحه بالا/پایین

کلمات

میانبر شرح
b / w کلمه قبلی/بعدی
GE / E. پایان قبلی/بعدی کلمه

خط

میانبر شرح
0 (صفر) / $ شروع/پایان خط
^ شروع خط (غیر خالی)

شخصیت

میانبر شرح
FE / FE به E قبلی/بعدی بروید
به / به قبل از/بعد از O/Next O حرکت کنید
/ n

مدرک

میانبر شرح
gg / g خط اول/آخرین
: n از
} / { خط خالی بعدی/قبلی

پنجره

میانبر شرح
h / m / l صفحه بالا/میانی/پایین
ZT / ZZ / ZB بالا/مرکز/پایین این خط

حالت درج

میانبر شرح
i / a قبل/بعد از مکان نما را وارد کنید
i / a شروع/پایان خط را وارد کنید
o / o (نامه) خط جدید زیر/بالا را وارد کنید
s / s char/line را حذف کنید و درج کنید
ج / سی سی تغییر به خط پایان/جریان فعلی
گسی در آخرین نقطه درج قرار دهید
جنجال

صرفه جویی و خروج

میانبر شرح
: w پس انداز کردن
: س پرونده بستن
: WQ : x
: WQA همه پرونده ها را ذخیره و ترک کنید
: س! ZQ
: qa همه پرونده ها را ببندید
: qa! مجبور به ترک همه پرونده ها
: W Now.txt اکنون بنویسید.
: sav new.txt ذخیره و ویرایش new.txt
: w! برای readonly پرونده بنویسید

حالت عادی

میانبر شرح
حرف یک شخصیت را جایگزین کنید
حرف حالت جایگزین را وارد کنید
U / 3U تغییر 1 /3 بار تغییر می کند
تو تغییر در یک خط
j با خط بعدی بپیوندید
/ 5 تغییر مجدد 1/5 بار تغییر می کند

برش و چسباندن

میانبر شرح
x حذف شخصیت (برش)
P / P چسباندن بعد از/قبل
XP دو شخصیت را عوض کنید
د حذف به پایان خط (برش)
DW حذف کلمه (برش)
DD حذف خط (برش)
DDP تعویض دو خط
شما خط یانک (کپی)
“*ص “+P
“*y “+y

در حالت بصری

میانبر شرح
د x
حرف انتخاب را جایگزین کنید
حرف انتخاب یانک (کپی)

تکرار کننده

میانبر شرح
بشر آخرین فرمان را تکرار کنید
؛ آخرین F ، T ، F یا T را تکرار کنید
با آخرین F ، T ، F یا T را معکوس کنید
واد آخرین تکرار: S
@: یک دستور خط فرمان را تکرار کنید

حالت بصری

میانبر شرح
حرفهای حالت بصری را وارد کنید
حرفهای حالت خط بصری را وارد کنید
حالت بلوک بصری را وارد کنید
GGVG تمام متن را انتخاب کنید
> / < متن را به راست/چپ تغییر دهید

ماکرو

جدید جدید
سعادت ضبط کلان من
سعدی ضبط ماکرو را متوقف کنید
I کلان من را اجرا کنید
7@من 7 بار کلان را اجرا کنید
دفتر آخرین کلان را تکرار کنید

شما می توانید کلان را برای هر نامه ای ذخیره کنید نه فقط i

اپراتورهای VIM

استفاده

میانبر شرح
د حرف
عملگر حرکت

اپراتورها را با حرکاتی برای استفاده از آنها ترکیب کنید

اپراتورهای موجود

میانبر شرح
د حذف کردن
حرف یانک (کپی)
جف تغییر (حذف سپس درج)
پ خمیر
= کد فرمت
g ~ پرونده را تغییر دهید
گودال بزرگ
گودال حسابهای کوچک
> درست توطئه
< توطئه سمت چپ
! از طریق برنامه خارجی فیلتر کنید

نمونه

ترکیب شرح
DD خط فعلی را حذف کنید
دی جی دو خط را حذف کنید
DW حذف به کلمه بعدی
DB شروع به شروع کلمه
DFA حذف تا یک کاراکتر
د/سلام حذف تا سلام
سی سی تغییر خط فعلی ، مترادف با S
شما خط فعلی را کپی کنید
> j خط 2 خط
GGDG یک سند کامل را حذف کنید
GG = G یک سند کامل را تورفتگی کنید
اشکال یک سند کامل را کپی کنید

حساب

[count]  
 [count] 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


ترکیب شرح
2D 2 خط را حذف کنید
6 سال 6 خط کپی کنید
D3W 3 کلمه را حذف کنید
D5J 5 خط را به سمت پایین حذف کنید
> 4K 4 خط به سمت بالا

اشیاء متن VIM

استفاده

میانبر شرح جدید
حرفهای i / a پ
عملگر داخلی / اطراف متنی

با یک اپراتور داخلی یا اطراف بلوک های متنی کار کنید

اشیاء متنی

میانبر شرح
پ پاراگراف
حرف کلام
حرف Word (احاطه شده توسط فضای سفید)
حرف حکم
[ ( { < A []، () ، یا {} بلوک
])}> بوها []، () ، یا {} بلوک
“” یک رشته نقل شده
شرح یک بلوک [(
B A block in [{
t A HTML tag block

See :help text-objects

Delete

Shortcut Description
diw Delete inner word
dis Delete inner sentence
di” Delete in quotes
da” Delete in quotes (including quotes)
dip Delete a paragraph

Selections

Shortcut Description
vi” Select inner quotes “…”
va” Select quotes “…”
vi[ Select inner brackets […]
VA[ Select brackets […]
با صدای بلند Word داخلی را انتخاب کنید
VIP پاراگراف داخلی را انتخاب کنید
VIPIP پاراگراف بیشتر را انتخاب کنید

متفرقه

میانبر شرح
صف تغییر کلمه درونی
CI “ نقل قول های داخلی را تغییر دهید
استنباط تغییر برچسب های داخلی (HTML)
سیپ تغییر پاراگراف داخلی
ید پاراگراف داخلی یانک
خیط پاراگراف یانک (از جمله Newline)

VIM چندین پرونده

بافش

جدید جدید
: e پرونده یک فایل را در یک بافر جدید ویرایش کنید
: bn به بافر بعدی بروید
: bp به بافر قبلی بروید
: BD حذف پرونده از لیست بافر
: B 5 بافر شماره 5 را باز کنید
: B File با فایل به یک بافر بروید
: ls همه بافرهای باز را لیست کنید
: پرونده SP پنجره باز و تقسیم
: در مقابل پرونده پنجره باز و به صورت عمودی تقسیم می شود
: پنهان این بافر را پنهان کنید
: WN پرونده را بنویسید و به بعدی بروید
: Tab BA همه بافرها را به صورت زبانه ویرایش کنید

ویندوز

جدید جدید
حرف پنجره
حرفهای پنجره تقسیم به صورت عمودی
حرف ویندوز را تغییر دهید
سعدی یک پنجره را ترک کنید
حرف وارد یک برگه جدید شوید
x تعویض جریان با بعدی
– / + کاهش/افزایش قد
< /> کاهش/افزایش عرض
= به همان اندازه بالا و گسترده
ساعت / ل به پنجره سمت چپ/راست بروید
j / k به پنجره بالا/پایین بروید

زبانه

میانبر شرح
: موضوع [file] پرونده را در یک برگه جدید ویرایش کنید
: TABF [file] اگر در برگه جدید وجود دارد باز شود
: TABC بستن برگه فعلی
: نقطه بسته های دیگر را ببندید
: زبانه ها لیست همه برگه ها
: TABR به برگه اول بروید
: سفره به برگه Last بروید
: TABM 0 حرکت به موقعیت 0
: tabn به برگه بعدی بروید
: TABP به برگه قبلی بروید

حالت عادی

میانبر شرح
GT به برگه بعدی بروید
GT به برگه قبلی بروید
2 گرم به برگه شماره 2 بروید

VIM را جستجو کنید و جایگزین کنید

جستجو

جدید جدید
/foo به جلو جستجو کنید
/foo \ c جستجو رو به جلو (مورد غیر حساس)
؟ foo جستجو به عقب
/\ v \ d+ جستجو با regex
حرف الگوی جستجوی تطبیق بعدی
حرف مسابقه قبلی
* جستجوی کلمه فعلی به جلو
# جستجوی کلمه فعلی به عقب

جایگزین خط

`
:[range]s/{pattern}/{str}/[flags]

`


:s/old/new Replace first
:s/old/new/g Replace all
:s/\vold/new/g Replace all with regex
:s/old/new/gc replace all (Confirm)
:s/old/new/i Ignore case replace first
:2,6s/old/new/g Replace between lines 2-6

Replace FILE

`
:%s/{pattern}/{str}/[flags]

`


:%s/old/new Replace first
:%s/old/new/g Replace all
:%s/old/new/gc Replace all (Confirm)
:%s/old/new/gi Replace all (ignore case)
:%s/\vold/new/g Replace all with regex

Ranges

% Entire file
’<,’> Current selection
5 Line 5
5,10 Lines 5 to 10
$ Last line
2,$ Lines 2 to Last
. Current line
,3 Next 3 lines
-3, Forward 3 lines

Global command

`
:[range]g/{pattern}/[command]

`


:g/foo/d Delete lines containing foo
:g!/foo/d Delete lines not containing foo
:g/^\s*$/d Delete all blank lines
:g/foo/t$ Copy lines containing foo to EOF
:g/foo/m$ Move lines containing foo to EOF
:g/^/m0 Reverse a file
:g/^/t. Duplicate every line

Inverse :g

`
:[range]v/{pattern}/[command]

`


:v/foo/d Delete lines not containing foo(also :g!/foo/d)

Flags

g Replace all occurrences
i Ignore case
I Don’t ignore case
c Confirm each substitution

Substitute expression (magic)

& \0
\1…\9 Replace with the group 0-9
\u Uppercase next letter
\U Uppercase following characters
\l Lowercase next letter
\L Lowercase following characters
\e End of \u, \U, \l and \L
\E End of \u, \U, \l and \L

Examples

`
:s/a|b/xxx\0xxx/g # Modifies “a b” to “xxxaxxx xxxbxxx”
:s/test/\U& file/ # Modifies “test” to “TEST FILE”
:s/(test)/\U\1\e file/ # Modifies “test” to “TEST file”
:s/\v([abc])([efg])/\2\1/g # Modifies “af fa bg” to “fa fa gb”
:s/\v\w+/\u\0/g # Modifies “bla bla” to “Bla Bla”
:s/\v([ab])|([cd])/\1x/g # Modifies “a b c d” to “ax bx x x”
:%s/./\L&/ # Modifies “HTML” to “html”
:s/\v<(.)(\w
)/\u\1\L\2/g # Make every first letter of a word uppercase
:%s/^(.)\n\1/\1/ # Remove duplicate lines
:%s/<\/=(\w+)>/\U&/g # Convert HTML-Tags to uppercase
:g/^pattern/s/$/mytext # Find and append text to the end
:g/pattern/norm! @i # Run a macro on matching lines
/^(.
)(\r\?\n\1)+$ # View the duplicates lines
/\v^(.*)(\r?\n\1)+$ # View the duplicates lines (very magic)
:v/./,/./-j # Compress blank lines into a blank line
:g//,//d # Delete inclusively from to

`

Vimdiff

Usage

`

$ vimdiff file1 file2 [file3]$ vim -d file1 file2 [file3]

`

Editing

`
:[range]diffget [bufspec]:[range]diffput [bufspec]

`


Shortcut Description
do / :diffget Obtain (get) difference
dp / :diffput Put difference
:dif Re-scan differences
:diffo Switch off diff mode
:1,$+1diffget Get all differences
ZQ Quit without changes

See: Ranges

Folds

Shortcut Description
zo / zO Open
zc / zC Close
za / zA Toggle
zv Open folds for this line
zM Close all
zR Open all
zm Fold more (foldlevel += 1)
zr Fold less (foldlevel -= 1)
zx Update folds

Jumping

Shortcut Description
]c Next difference
[c Previous difference

Miscellaneous

Case

Shortcut Description
vU Uppercase character
vu Lowercase character
~ Toggle case character
viw U Uppercase word
viw u Lowercase word
viw ~ Toggle case word
VU / gUU Uppercase line
Vu / guu Lowercase line
V~ / g~~ Toggle case line
gggUG Uppercase all text
ggguG Lowercase all text
ggg~G Toggle case all text

Jumping

Shortcut Description
Go back to previous
Go forward
gf Go to file in cursor
ga Display hex, ascii value

Misc command-lines

:h Help open help view
:edit! Reload current file
:2,8m0 Move lines 2-8 to 0
:noh Clear search highlights
:sort Sort lines
:ter Open a terminal window
:set paste Enable Insert Paste sub-mode
:set nopaste disable Insert Paste sub-mode
:cq Exiting with an error(aborting Git)

Navigating

Shortcut Description
% Nearest/matching {[()]}
[( [{
]) ]{
[m Previous method start
[M Previous method end

Counters

Shortcut Description
Increase number
Decrease number

Tags

Shortcut Description
:tag Classname Jump to first definition of Classname
Jump to definition
g] See all definitions
Go back to last tag
Back/forward
:tselect Classname Find definitions of Classname
:tjump Classname Find definitions of Classname (auto-select 1st)

Formatting

:ce 8 Center lines between 8 columns
:ri 4 Right-align lines at 4 columns
:le Left-align lines

See :help formatting

نشان

میانبر شرح
`^ آخرین موقعیت مکان نما در حالت درج
` آخرین تغییر در بافر فعلی
`” آخرین بافر فعلی خارج شده
`0 در آخرین پرونده ویرایش شده
'' بازگشت به خط در بافر فعلی که از آنجا پرید
Back to position in current buffer where jumped from
`[ To beginning of previously changed or yanked text
`] To end of previously changed or yanked text
`< To beginning of last visual selection
`> To end of last visual selection
ma Mark this cursor position as a
`a Jump to the cursor position a
‘a Jump to the beginning of the line with position a
d’a Delete from current line to line of mark a
d`a Delete from current position to position of mark a
c’a Change text from current line to line of a
y`a Yank text from current position to position of a
:marks List all current marks
:delm a Delete mark a
:delm a-d Delete marks a, b, c, d
:delm abc Delete marks a, b, c

Calculator

Shortcut Description
= 7*7 Shows the result
= 10/2 Shows the result

Do this in INSERT mode

Shell

:! Interpret Shell Command
:r! Read in output of shell
:r!date Insert date
:!!date Replace current line with date

Command line

Shortcut Description
Insert current word into the command line
Paste from ” register
Auto-completion of path in insert mode

Tricks

Remove duplicate lines

:sort | %!uniq -u

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای شماره گذاری خطوط موجود در پرونده

:%!cat -n

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

کل Doc را در کلیپ بورد کپی کنید

:%w !pbcopy            # Mac OS X
:%w !xclip -i -sel c   # GNU/Linux
:%w !xsel -i -b        # GNU/Linux

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

همچنین ببینید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا