もた日記

くだらないことを真面目にやる

Vimメモ : ALE(Asynchronous Lint Engine)で非同期コードチェック

  • ALE(Asynchronous Lint Engine)
  • サポート言語とLintツール
  • インストール
  • 使い方
  • FAQと設定
    • 特定のLintツールのみを有効にする
    • 左端のシンボルカラムを表示したままにする
    • シンボルを変更する
    • エラーと警告数をステータスラインに表示する
    • メッセージのフォーマットを変更する
    • コードチェック完了後に特定の操作を実行する
    • エラー間を移動する
    • ファイル保存時のみチェックするようにする
    • ロケーションリストの代わりにQuickFixを使用する

ALE(Asynchronous Lint Engine)


wonderwall.hatenablog.com

上記記事で、flake8PythonのコードをチェックするためにSyntasticvim-flake8を使ってみたが、チェック中に操作ができないので非同期で動作するプラグインを調べてみる。
プラグインとしてはvim-watchdogsNeomakeがあるが、今回はALE(Asynchronous Lint Engine)プラグインを試してみる。

github.com

ALEはNeovimとVim 8で動作する非同期コードチェックのプラグインで、図のように入力しながらのコードチェックが可能になる。

f:id:wonder-wall:20170226195638g:plain

続きを読む

Zshメモ : zmvコマンドでリネーム(連番、ゼロ埋め、置換、拡張子、大文字、小文字など)

  • zmvの使い方
  • zmvのオプション
  • zmvを使ったリネームのパターン
    • 拡張子を変更する(a.txt -> a.csv
    • 拡張子を除去する(a.txt -> a)
    • 先頭に文字を追加する(a.txt -> file_a.txt)
    • 大文字化、小文字化する(AAA.txt -> aaa.txt)
    • 先頭だけ大文字化する(file.txt -> File.txt)
    • 連番を付与する(a.txt, b.txt -> a-1.txt, b-2.txt)
    • ファイル名に数値を加算する(pic1.jpg -> pic2.jpg)
    • ゼロ埋めする(pic1.jpg -> pic0001.jpg)
    • ゼロ埋めした連番を付与する(a.txt, b.txt -> a-0001.txt, b-0002.txt)
    • ゼロを除去する(pic0001.jpg -> pic1.jpg)
    • 数値の範囲を指定してリネームする
    • ファイル名のスペースを置換する(a a.txt -> a_a.txt)
    • 特定の文字を置換する(pic1.jpg -> file1.jpg)
    • 特定の文字を除去する(pic1.jpg -> 1.jpg)
    • 最初の数文字を取り除く(0001_a.txt -> a.txt)
    • 文字列を入れ替える(file-1.txt -> 1-file.txt)
    • サブディレクトリも処理する

zmvの使い方


Zshzmvというコマンドを使うと、いろいろなリネームが簡単にできるので便利。
zmvコマンドを使うためにはautoloadが必要なので、下記行を.zshrcに追加しておく。

autoload -U zmv

簡単な使い方はzmvとコマンドを打ってリターンすると確認できる。マニュアルについてはman zshcontribの中に書いてある。

$ zmv
Usage:
  zmv [OPTIONS] oldpattern newpattern
where oldpattern contains parenthesis surrounding patterns which will
be replaced in turn by $1, $2, ... in newpattern.  For example,
  zmv '(*).lis' '$1.txt'
renames 'foo.lis' to 'foo.txt', 'my.old.stuff.lis' to 'my.old.stuff.txt',
and so on.  Something simpler (for basic commands) is the -W option:
  zmv -W '*.lis' '*.txt'
This does the same thing as the first command, but with automatic conversion
of the wildcards into the appropriate syntax.  If you combine this with
noglob, you don't even need to quote the arguments.  For example,
  alias mmv='noglob zmv -W'
  mmv *.c.orig orig/*.c

例に書いてあるように

$ zmv -W '*.lis' '*.txt'

を実行すると拡張子を.lisから.txtに変更できる(このくらいならrenameコマンドでもできるが)。

続きを読む

Pythonメモ : フルスクリーンコンソールデバッガPuDBでデバッグ

  • PuDB
  • インストール
  • 初回起動
  • テーマ変更
  • 基本的な使い方
  • 終了方法

PuDB


github.com

PuDBはCUIベースでありながら、図のようにGUIのようにPythonコードをデバッグできるツールである。

f:id:wonder-wall:20170212202031p:plain

インストール


pipを使用している場合は、下記コマンドでインストール。

$ pip install pudb
 …
Installing collected packages: urwid, pudb
Successfully installed pudb-2017.1 urwid-1.3.1
続きを読む

Vimメモ : Python開発で役に立つプラグイン(補完、コードチェック、インデント、折り畳み)

  • jedi-vim(入力補完)
  • vim-flake8(コードチェック)
  • vim-python-pep8-indent(インデントをPEP8に準拠)
  • vim-indent-guides(インデント可視化)
  • braceless.vim(コード折り畳み、インデントハイライト)

jedi-vim(入力補完)


入力補完プラグイン。定義への移動、変数リネームなども可能。

f:id:wonder-wall:20170129155319p:plain

wonderwall.hatenablog.com

続きを読む

Vimメモ : BracelessでPythonコードの折り畳み、インデントハイライト

  • braceless.vim
  • インストール
  • 使い方
    • テキストオブジェクト
    • カーソル移動
    • 折り畳み設定(+fold)
    • インデントハイライト(+highlight, +highlight-cc, +highlight-cc2)
    • オートインデント(+indent)

braceless.vim



github.com
Bracelessプラグインを使うと、Pythonのようなインデントが重要な言語でテキストオブジェクト追加、簡単なコード折り畳み、インデントハイライトができるようになる。

インストール


deinの場合は下記行をdeinlazy.tomlなどに追加。

[[plugins]]
repo = 'tweekmonster/braceless.vim'
on_ft = 'python'
続きを読む