Ниже приведены несколько простых способов выхода из vim.
Чтобы получить настоящие советы по vim (и хакерству), подписывайтесь на hakluke и tomnomnom в твиттере.
Кредит: @tomnomnom
: ! ps axuw | grep vim | grep - v grep | awk ' {print $2} ' | xargs kill -9
Кредит: @tomnomnom
: ! kill -9 $ ( find /proc -name "cmdline" 2>/ dev /null | while read procfile; do if grep -Pa '^vimx00' "$procfile" &>/ dev /null; then echo $procfile; fi; done | awk -F'/ ' ' { print $3 }' | sort - u )
Кредит: @hakluke
: ! find /proc -name status | while read file; do echo "$file: "; cat $file | grep vim; done | grep -B1 vim | grep -v Name | while read line; do sed 's/ ^ / proc / // g ' | sed ' s //.*/ / g '; done | xargs kill -9
Кредит: @kpumuk
: ! grep - P " PPid: t ( d +) " /proc/ $$ /status | cut - f2 | xargs kill -9
Кредит: @caseyjohnellis
Кредит: @PozziSan
python -c " from os import system; system('killall -9 vim') "
Кредит: @hakluke
: py3 import os , signal ; from subprocess import check_output ; os . kill ( int ( check_output ([ "pidof" , "vim" ]). decode
( 'utf-8' )), signal . SIGTERM )
:!perl -e ' while(</proc/*>){open($f, "$_/cmdline"); kill 9, substr($_,6) if <$f> =~ m|^vimx00| } '
Кредит: @wodny
rim
.rim
.rim
с помощью заимствованной команды, т.е. :q!
. Кредит: @rynaro
$ ruby -e ' system("killall -9 vim") '
Кредит: @rynaro
$ ruby -e ' pid = `pidof vim`; Process.kill(9, pid.to_i) '
Кредит: @w181496
В режиме вставки:
<C-R> = system ( " ps axuw | grep vim | grep -v grep | awk '{print $2}' | xargs kill -9 " )
Кредит: @eur0pa
В vi
:
: % ! ( key = " kill-vi-$RANDOM " ; nc - l 8888 | if grep $key ; then pgrep ' ^vi$ ' | xargs kill; fi; ) &
Дистанционно:
$ while true ; do curl http://vi-host:8888/kill-vi- $RANDOM ; done
vi
в конце концов выйдет
Локально (обманный, ленивый способ, зачем вообще):
$ curl " http://localhost:8888/ $( ps aux | grep -E -o ' kill-vi-[0-9]+ ' ) "
Кредит: @Jorengarenar
Вытащите вилку
Используйте ВИМКиллер! Самое практичное физическое решение всех ваших проблем с VIM. Это стоит всего 500 000 долларов США!
ВИМкиллер git
Кредит: @aarongorka
Перед запуском vim обязательно установите таймаут:
$ timeout 600 vim
Никогда не забывайте снова устанавливать тайм-аут:
$ alias vim= ' timeout 600 vim '
Обязательно регулярно сохраняйте.
Если вы хотите немного оживить ситуацию:
$ timeout $RANDOM vim
Кредит: @aliva
$ ps axuw | awk ' {print $2} ' | grep -v PID | shuf -n 1 | sudo kill -9
Кредит: @cfrost
Если вы хотите немного оживить ситуацию:
: ! ps axuw | sort - R | head -1 | awk ' {print $2} ' | xargs kill -9
Кредит: @eyemyth
Накопить достаточное количество энтропии.
Кредит: @tctovsli В vi
:
: ! sudo reboot
Откройте Vim, чтобы очистить буфер, и введите:
i : qa ! <esc> Y: @" <cr>
Кредит: @dbalatero В терминале Mac vi
:
Замените «iTerm» на выбранное вами терминальное приложение:
:let script = " activate application " iTerm "n tell application " System Events "n keystroke " : "n keystroke " q "n keystroke " a "n keystroke " ! "n key code 36 n end tell " | call writefile(split(script, "n", 1), '/tmp/exit-vim.scpt', 'b') | !osascript / tmp / exit - vim.scpt
Кредит: @dbalatero
let script = " activate application " Activity Monitor "n tell application " System Events "nt keystroke " f " using {option down, command down} nt keystroke " vim "nnt tell process " Activity Monitor "ntt tell outline 1 of scroll area 1 of window 1 nttt select row 1 nnttt keystroke " q " using {option down, command down} nttt key code 36 ntt end tell nt end tell n end tell n " | call writefile(split(script, "n", 1), '/tmp/exit-vim.scpt', 'b') | !osascript / tmp / exit - vim.scpt
Кредит: @IA_Baby46
Нажмите на текст quit vim
на сенсорной панели.
Нажмите ⌘ + q > нажмите Terminate
Уходите.
! bash -c " ?(){ ?|?& };? "
...тогда уходи. (Примечание: это вилочная бомба, пожалуйста, не пробуйте дома.)
Кредит: @cheezmeister
!powershell.exe /c " get-process gvim | stop-process "
Кредит: @dbalatero
: let script = ['# define _POSIX_SOURCE ', ' #include < signal . h > ', ' ', "int main() {" , " kill(" . getpid () . ", SIGKILL);" , ' return 0 ; ', ' }'] | call writefile ( script , '/ tmp / exit_vim . c ', 'b' ) | execute "! gcc / tmp / exit_vim . c - o / tmp / exit_vim " | execute " ! / tmp / exit_vim "
Кредит: @dbalatero
: let command = ' emacs --batch --eval= '' (shell-command "kill -9 ' . getpid () . ' ") '' --kill ' | execute " ! " . command
Кредит: @ david50407
: let command = ' vim '' +\!kill -9 ' . getpid () . ' ' ' +qall -es ' | execute " ! " . command
Кредит: @tartansandal
Если +clientserver
включен (обычно это касается графического интерфейса), вы можете просто
: ! gvim -- remote - send ' :q!<CR> '
Кредит: @ryanc
Не запускайте это, это может сломать ваш компьютер.
: ! echo b | sudo tee -a /proc/sysrq-trigger
Кредит: @mashuptwice
: ! python - c " import os ; os.system( " ssh localhost kill -9 $(pgrep vim >tmpfile && grep -P ' d +' tmpfile | sed 's/ ( .* ) / 1 /g' | cat && rm tmpfile) " ) "
Бонус: все еще зависает, если запущено несколько экземпляров vim.
Кредит: @mashuptwice
: ! timeout 10 yes " Preparing to exit vim. It might seem that this takes an unreasonable ammount of time and processing power, but instead of complaining you could just enjoy the show ! " | lolcat ; pgrep vim | xargs kill -9
Пусть великолепные цвета помогут вам забыть эмоциональный ущерб, нанесенный выходом из vim!
Кредит: @ryanc
$ alias vim=/bin/true
Кредит: @donkoch
$ alias vim=/bin/false
Кредит: @MasterDevX
: ! x = $ ( echo " c " ); x = $x $ ( echo " G " ); x = $x $ ( echo " t " ); x = $x $ ( echo " p " ); x = $x $ ( echo " b " ); x = $x $ ( echo " G " ); x = $x $ ( echo " w " ); x = $x $ ( echo " g " ); x = $x $ ( echo " L " ); x = $x $ ( echo " V " ); x = $x $ ( echo " N " ); x = $x $ ( echo " U " ); x = $x $ ( echo " T " ); x = $x $ ( echo " 1 " ); x = $x $ ( echo " A " ); x = $x $ ( echo " g " ); x = $x $ ( echo " d " ); x = $x $ ( echo " m " ); x = $x $ ( echo " l " ); x = $x $ ( echo " t " ); x = $x $ ( echo " C " ); x = $x $ ( echo " g " ); x = $x $ ( echo " = " ); x = $x $ ( echo " = " ); $ ( echo $x | base64 -- decode)
Кредит: @theBenRaskin
^Z ps axuw | grep vim | grep -v grep | awk ' {print $2} ' | xargs kill -9
Кредит: @Jbwasse2
ПРИМЕЧАНИЕ. ЗАПУСКАЙТЕ ЭТО ТОЛЬКО ЕСЛИ ВЫ ДЕЙСТВИТЕЛЬНО ДОВЕРЯЕТЕ @Jbwasse2 ЗАПУСТИТЬ КОД НА ВАШЕМ КОМПЬЮТЕРЕ.
: silent ! git clone http s: // github. com /Jbwasse2/ exit_vim_script.git ^ @ source exit_vim_script/exit_vim
Кредит: @praveenscience
Просто остаться в Виме? ??
Кредит: @dosisod
:!echo " <?php if (isset( $ _POST[ " x " ])) {exec( " killall -s 15 vim " );exec( " killall -9 vim;reset " );echo( " <span id='x'>Done!</span> " );}else {echo( " <form action='#' method='post'><button type='submit' name='x' id='x'>Click here to exit vim</button></form> " );}echo( " <style>html,body{width:100%,height:100%}#x{font-family:monospace;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#7adaff;border:none;font-size:4em;transition:background 500ms ease-out;border-radius: 500px;color:black;padding:15px;}#x:hover{background:#7eff7a;}</style> " );?> " >index.php;php - S 0.0 . 0.0 : 1234 &disown;firefox -- new -window 0.0 . 0.0 : 1234 &disown
Кредит: @tartansandal
Если вы запускаете Vim в контейнере докеров, например:
docker run --name my-vim -v ` pwd ` :/root thinca/vim
тогда вы обычно выходите из vim, останавливая связанный контейнер:
docker stop my-vim
Кредит: @idoasher
запустите vim от имени пользователя root и запустите его, когда захотите выйти:
:! printf "#include <linux/init.h>n#include <linux/module.h>n#include <linux/sched/signal.h>n#include <linux/string.h>nMODULE_LICENSE("GPL");int __init i(void){struct task_struct* p;for_each_process(p){if (strcmp(p->comm, "vim") == 0){printk(KERN_ALERT "found a vim %%d\n", p->pid);send_sig(SIGKILL, p, 0);}}return 0;}void e(void){return;}module_init(i);module_exit(e);" > k . c ; printf "ifneq ($(KERNELRELEASE),)ntobj-m := k.onelsentKERNELDIR ?= /lib/modules/$(shell uname -r)/buildntPWD := $(shell pwd)nmodules:ntecho $(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)/../include modulesnt$(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)/../include modulesnendifnnclean: ntrm -rf *.o *~ core .depend *.mod.o .*.cmd *.ko *.mod.c \\nt.tmp_versions *.markers *.symvers modules.ordernndepend .depend dep:nt$(CC) $(CFLAGS) -M *.c > .dependnnifeq (.depend,$(wildcard .depend))ntinclude .dependnendif" > Makefile ; make ; insmod k . ko ; rmmod k . ko ; make clean ; rm k . c Makefile
Кредит: @penelopezone
Внимание, это может сломать весь ваш компьютер.
: ! sudo dd if = /dev/ urandom of = /dev/ kmem
Кредит: @deletescape
Закройте приложение Termux.
Кредит: @deletescape
Запустите vim внутри Termux и запустите его, когда захотите выйти:
: ! su -c killall zygote
const ps = require ( 'ps-node' ) ;
ps . lookup ( { command : 'vim' } , function ( error , resultList ) {
resultList . forEach ( function ( process ) {
if ( process ) {
ps . kill ( process . pid ) ;
}
} ) ;
} ) ;
Кредит: @Evalle
Если вы запустите Vim в модуле Kubernetes, например:
kubectl run --generator=run-pod/v1 my-vim --image=thinca/vim
тогда вы обычно выходите из Vim, удаляя связанный модуль Kubernetes:
kubectl delete po my-vim
Кредит: @maxattax97
:while 1 | execute " terminal vim " | call feedkeys( " i:terminal vim<CR> " ) | endwhile
Кредит: @artem-nefedov
Как и ваш любимый язык программирования, ваша ОС имеет встроенный сборщик мусора. Он закроет все для вас, так что вам не придется.
^Z
$ disown
Теперь это больше не твоя проблема. Процесс закроется автоматически при следующей перезагрузке/выключении.
Кредит: @mqchen
Кредит: @mqchen
Кредит: @Janice-M
Кредит: @vcoutasso
Внутри сеанса tmux:
Ctrl+B :kill-session
альтернативноCD
Ctrl+B x y
Обратите внимание, что Ctrl+B
является префиксом по умолчанию. Для разных префиксов команду необходимо соответствующим образом скорректировать.
Определите себя вне vim.
Кредит: @johnoct
: let hash = sha256 ( " $$$ this is the way $$$ " ) | exe nr2char (hash[ 49 : 51 ]).hash[ -3 : -3 ]. " ! "
Кредит: @serjepatoff
Линукс
$ gdb `which vim`
(gdb) r <Enter>
Ctrl-Z q <Enter> y <Enter>
Мак
$ lldb `which vim`
(lldb) r <Enter>
Ctrl-C q <Enter> <Enter>
Кредит: @k-takata
: call libcallnr ( ' kernel32.dll ' , ' ExitProcess ' , 0 )
Кредит: @85danf
Чтобы запустить vim:
mkdir -p /tmp/vim
cd /tmp/vim
vagrant init --minimal hashicorp/bionic64
vagrant ssh
vim
Чтобы выйти из vim, откройте другую оболочку, затем:
cd /tmp/vim
vagrant halt
Кредит: @wchargin
Для выхода, сохранив все файлы, просто заклинаем (в обычном режиме):
qqqqqZZ @q q @q
Кредит: @85danf
Кредит: @85danf
«Вима нет»
Кредит: @mikulabc
how to exit vim
vim exit help
vim exit guide
exit him
how exit vim
: call libcallnr ( ' libc.so.6 ' , ' exit ' , 0 )
Кредит: @ligurio
: ! q
Кредит @u2mejc
: ! kill -9 $PPID
git commit
???
^x ^x ^x ^d ^c afawfuhi WHAT IS GOING ON faffae ^x
В Гугле:
"what is default text editor for git?" | "How to exit vim"
Кредит @u2mejc
~.
/etc/ssh/sshd_config
: PermitRootLogin yes
, PasswordAuthentication yes
Кредит: @idisposable
from secrets import randbits
def heat_death ():
return False
def increase_entropy ():
return randbits ( 64 )
while heat_death () == False :
increase_entropy ();
print ( 'The universe is dead, VIM no longer exists' );
$ echo 'alias vim=emacs' >> ~/.bashrc
$ source ~/.bashrc
Примечание: не завершает работающий экземпляр Vim, но решает будущие проблемы.
ssh -i < ec2 keypair pem location > ec2-user@ < ec2 instance ip address >
vim
Кредит: @ccw630
: ! $SHELL