Atom 1.35

Atom1.35では,chrome脆弱性Atom内からプルリクエストの全差分を表示する機能,その他多くの機能強化と安全性の向上が行われているそうです.

Chrome脆弱性の修正

コミットの詳細

  • ペイン内でのコミットの表示をサポート
  • 最近のコミットを見る際にキーボードのみで見れるようになった(マウスなどを使用せずに開ける)

プルリクエストの差分を表示

  • Atom内でプルリクエストを見ている際に今まで変更されたファイルを表示するタブが追加

バグ修正など

  • margeの時conflictがある場合にgitタグが開いたままになるバグの修正
  • Tree-sitterの折りたたみマーカーが同期していなかったバグの修正
  • language-pythonからselfのスニペットを削除

これまでよりずっとGitHubの機能がAtomに実装されている印象があります.

ブログ

blog.atom.io

リリースノート
github.com

Atomリリースノートまとめ (5/16/18 〜 1/9/19)

Atomリリースノートまとめ

以前まで自身が所属していたSlackのチャンネル内でAtomのupdate内容をまとめていたのですがせっかくなのでブログとして書いていこうかと思いました,なので今回はこれまでSlack内で紹介したものをまとめようと思います.次回以降はリリースごとに書いていこうかと思います.

5/16 Atom 1.27.0リリース

GitHubパッケージの改善

  • ステータスバーからbranchのpushとpull
  • commitの取り消し、修正がAtom内から簡単にできるように
  • GitHubペインからpullrequestが出せるように

バグの多数修正

ブログ
https://blog.atom.io/2019/05/15/atom-1-27.html
リリースノート
https://github.com/atom/atom/releases/tag/v1.27.0

6/22 Atom 1.28.0リリース

Electronのバージョンが2.0にアップグレード

  • これに伴いAtomのNode.jsが7.9.0から8.9.3に、Chromiumが58から61にアップグレード

Find-in-Project

  • ファイル内検索の表示が隣接するマッチをグループ化して表示されるように

Atom内からのコミットメッセージ

  • ミニエディタで作成されたコミットのコメントが#で始まる行が無視されなくなる、これは常にcommit.cleanupの設定が尊重されるようになるため。

その他バグ修正

ブログ
https://blog.atom.io/2018/06/21/atom-1-28.html
リリースノート
https://github.com/atom/atom/releases

7/31 Atom 1.29.0リリース

Tree-Sitterの改善

  • Tree-Sitterの解析がフレームレートに影響しなくなった
    GitHubパッケージの改善

  • 共同開発者名(GitHubのユーザ名)がオートコンプリートされるようになった

その他バグ修正

ブログ
http://blog.atom.io/2018/07/31/atom-1-29.html
リリースノート
https://github.com/atom/atom/releases/tag/v1.29.0

8/28 Atom 1.30.0リリース

GitHubタブの機能追加

  • 現在のbranchに関連するPRの表示
  • 表示される他 branchのPRからcheckoutが可能
  • commitメッセージにて絵文字が使えるように

Tree-Sitterの改善

  • Rubyや複数の言語を含むファイルの処理も可能に
  • HTMLファイル内のscriptタグ内のJavaScript
  • .ejsファイルのJavaScriptとHTML
  • .erbファイルのRubyとHTML
  • JavaScriptの特定のテンプレートリテラルの内部にあるHTML
  • Rubyのある種のheredocsの内部のHTML

ブログ
https://blog.atom.io/2018/08/28/atom-1-30.html
リリースノート
https://github.com/atom/atom/releases/tag/v1.30.0

9/26 Atom 1.31.0リリース

Tree-sitter

  • shebabgによる言語検出の強化
  • JavaScript,Rubyの文法の強化

Tree Viewの強化

  • file explorarからプロジェクトをドラッグしてTreeView内にドロップすることでプロジェクトの追加が可能に

GitHubパッケージの機能追加

  • PR詳細ペインにより詳細な内容が表示されるように

ブログ
http://blog.atom.io/2018/09/26/atom-1-31.html
リリースノート
https://github.com/atom/atom/releases/tag/v1.31.0

10/23 Atom 1.32.0リリース

Tree-sitter

  • デフォルトで有効に

メモリ使用量削減

  • メインとレンダラープロセスのメモリ消費量がそれぞれ45MB削減されました!
  • その他使用メモリが大幅に削減

ブログ
http://blog.atom.io/2018/10/23/atom-1-32.html
リリースノート
https://github.com/atom/atom/releases/tag/v1.32.0

11/29 Atom 1.33.0リリース

Tree-sitter

  • Rustの組み込みをサポート

git

  • プルリクエストの詳細ビューはコミットの詳細のリストを表示するように

ソフトラッピングの改善
スニペットを無効化できるように

ブログ
http://blog.atom.io/2018/11/28/atom-1-33.html
リリースノート
https://github.com/atom/atom/releases/tag/v1.33.0

1/8 Atom 1.34.0リリース

コミットメッセージのテンプレートに対応したらしいです、
他の変更点も主にコミット周りです。

ブログ
https://blog.atom.io/2019/01/08/atom-1-34.html
リリースノート
https://github.com/atom/atom/releases/tag/v1.34.0

xmodmapでキーボード入れ替え

CapsLockをCtrlに

CapslockをCtrlにする方法を今まではwmで行っていたのですが、先日i3を使っていたところi3ではキーコンフィグの入れ替えをサポートしていなそうなのでxmodmapを利用してlogin時に指定のキーコンフィグにするようにしました。

xmodmap

home直下に.Xmodmapというファイルを作成する。反映させるファイルを直接指定して反映させるので実際ファイル名は何でも良さそうだがわかりやすいようにした。

#.Xmodfile
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L

以上の内容を書き込んでおく、

書き込んだファイルを反映させるためxmodfileをつかって反映させる

xmodmap ~/.Xmodfile

毎回このコマンドを実行するのは大変なのでlogin時に実行するようにするのだが、このコマンドは2回目以降はremoveするCapsLockが見つからなくなってしまうのでbashrcやzshrcに書いておくとシェルを起動するたびに怒られるのでbashprofileやzprofileに書いておく。

以上で憎きCapslockともおさらば。

pyenvのインストール

pyenvのインストールが思い出せなかったので今後のために残しておこうと思います。今回の環境は

です。

まず初めにpyenvの本体をhome直下にgitでcloneしてくる。隠しファイルにしたいので

$ git clone https://github.com/pyenv/pyenv ~/.pyenv

という感じでcloneしてくる。

そのあと、bashrcにpyenvの設定をしていく。

export PYENV_ROOT=“$HOME/.pyenv”
export PATH=“$PYENV_ROOT/bin:$PATH”

上記の文をbashrcに追記する。以上でpyenvのインストールは完了。

ちなみにpyenvの使い方は

$ pyenv install --list

でインストールできるものを確認できるので入れたいものを確認してコピペとかで

$ pyenv install 入れたいバージョン

という感じに叩くと入れられる。自分は環境が整ってるanacondaを普段使っているけど入れるものはお好みで。

$ pyenv versions
* system (set by /home/user/.pyenv/version)
  3.6.1
  anaconda3-4.3.1

こんな感じでpyenv versionsと叩くと現在pyenvで入れたものを確認できる。system (set by /home/user/.pyenv/version)と書いてあるやつはもともと入っているpythonのこと。

$ pyenv global バージョン

と叩くとsystemからpyenvでいれたものに変更できる。

ちなみに

$ pyenv local バージョン

と叩くとバージョンの設定をディレクトリ内のみに反映させることができる。ディレクトリに設定してあるバージョンは.python-versionに書いてあるのでこのファイルを直接編集してもバージョンを変えられる。

簡単に書いたが

qiita.com

こちらの方のページなどを参考にするととてもわかり易い。

以上。

ncurses6.1のインストール

ncueses6.1を入れる方法をまとめる、環境は

  • LinuxMint18.3 (Ubuntu 16.04)

で行った、ncuesesのinstallの方法を調べてみるとaptでinstallする方法

$ sudo apt install ncurses-dev

が出てくるがこれだとncursesのバージョンが古く、自身の環境だとうまく動作しないなどの問題があったので今回はncurses6.1のソースをダウンロードし、buildする方法を取る。

buildする際に stow というコマンドを使うが、自身の環境にはなかったので先にインストールを行った、ちなみに stow はソースからbuildする際に環境を汚さないようによしなにしてくれるコマンドらしい。以下のようにaptで簡単にいれることができる。

$ sudo apt install stow

ncurses6.1のインストール手順

$ LOCAL=~/.local
$ PKG=ncurses
$ VER=6.1
$ cd $LOCAL/src
$ wget -nc ftp://ftp.gnu.org/gnu/$PKG/$PKG-$VER.tar.gz
$ tar -xf $PKG-$VER.tar.*
$ cd $PKG-$VER
$ ./configure --prefix=$LOCAL/stow/$PKG-$VER
$ make && make install
$ stow -d $LOCAL/stow $PKG-$VER

上記の手順でインストールは完了する。

ncursesの実行

最初書いた時に地味に詰まったので実行する際のオプションも書いておく。

$ g++ main.cpp -lncurses

のようにオプションで -lncursesをつけるとコンパイルが通る。

参考ページ

ncursesのインストール

https://senooken.jp/blog/2018/06/20/