tag:crieit.net,2005:https://crieit.net/tags/ATOM/feed 「ATOM」の記事 - Crieit Crieitでタグ「ATOM」に投稿された最近の記事 2018-10-31T17:55:40+09:00 https://crieit.net/tags/ATOM/feed tag:crieit.net,2005:PublicArticle/14240 2017-12-04T07:34:29+09:00 2018-10-31T17:55:40+09:00 https://crieit.net/posts/Atom-Visual-Studio-Code AtomからVisual Studio Codeに乗り換えた <p>最近、長らく使っていたAtomからVisual Studio Codeに乗り換えた。理由はただひとつ、「重すぎる」。検討したこと、躊躇したこと、解決方法をまとめてみた。</p> <p>なんだかんだでずっとVSCodeに乗り換える機会を伺っていた。</p> <h3 id="まずAtomのいいところ"><a href="#%E3%81%BE%E3%81%9AAtom%E3%81%AE%E3%81%84%E3%81%84%E3%81%A8%E3%81%93%E3%82%8D">まずAtomのいいところ</a></h3> <p>Atomはとても良い。<br /> 拡張機能で何でも揃えられるし、どんな言語でも扱えるし、<br /> 一度起動してしまえばさくさく動いて快適。</p> <p>使っているパッケージに不満があればプルリクを送って改善していけるし、<br /> みんなで作り上げていくとても良いアプリケーション。</p> <p>ずっと死ぬまで使い続けていくのだろうなと、あの頃は思っていた。</p> <h3 id="Atomの悪いところ"><a href="#Atom%E3%81%AE%E6%82%AA%E3%81%84%E3%81%A8%E3%81%93%E3%82%8D">Atomの悪いところ</a></h3> <p>とにかく重い。</p> <p>週1の常駐業務で32bitのWindows7でAtomを使っていたが起動と終了が重すぎる。<br /> 複数のプロジェクトを同時進行しようとすると話にならない。</p> <p>自分のPCは昔ゲーム用に買ったスペックの良いものなのでそれほど気にはならなかったが、<br /> 時々PC自体が完全にフリーズするのでおかしいと思ったらAtomを開きすぎるとそうなるっぽかった。</p> <p>また、オートコンプリート機能などのパッケージは、裏で解析を始めるので途端に重くなる。<br /> キー入力も遅延が生じ始める。仕方がないのでそういったパッケージは使用を断念する。</p> <p>最近IDE機能が追加されたので期待して試してみたが、期待はずれだった。<br /> このあたりで完全にAtomへの想いが冷めたのだと思う。</p> <h3 id="Visual Studio Codeへの乗り換えの懸念"><a href="#Visual+Studio+Code%E3%81%B8%E3%81%AE%E4%B9%97%E3%82%8A%E6%8F%9B%E3%81%88%E3%81%AE%E6%87%B8%E5%BF%B5">Visual Studio Codeへの乗り換えの懸念</a></h3> <p>VSCodeがやけに速くて快適なのはちょくちょく試していたので気づいていた。<br /> 乗り換え直前等はAtomの重さを最大限に感じていた時なので、天と地の差くらいには感じていた。</p> <p>ではなぜ乗り換えなかったかというと、Vimパッケージへの不満だった。</p> <p>AtomのVimパッケージは、元々あったVimパッケージを日本人開発者の方が別パッケージにして強化して主導権を奪い取ったもので、非常に快適。</p> <p>VSCodeのVimは、下記が出来なくて日常的に使うのは厳しいなと感じていた。</p> <ul> <li>Insert modeの時もCtrl+Fを奪ってしまって検索、置換が面倒</li> <li>modeによってはCtrl+PgUp, PgDnでタブ切り替えが出来ない</li> <li>システムのClipboardを使う設定にすると一部操作ができなくなる不具合がある(現在改善されている)</li> </ul> <p>たったこれだけではあるがスピード感が失われてストレスが半端ないので使用できなかった。</p> <h3 id="解決方法"><a href="#%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95">解決方法</a></h3> <p>解決したので即VSCodeに乗り換えた。</p> <p>キーバインディングは自由に設定できるので自分で勝手に設定すれば良いだけだった。<br /> 今使っているキーバインディングは下記のような感じ。</p> <pre><code class="json">[ { "key": "ctrl+f", "command": "actions.find", "when": "editorTextFocus && vim.active && vim.use<C-f> && vim.mode == 'Insert' && !inDebugRepl" }, { "key": "ctrl+v", "command": "editor.action.clipboardPasteAction", "when": "editorTextFocus && vim.active && vim.use<C-f> && vim.mode == 'Insert' && !inDebugRepl" }, { "key": "ctrl+pageup", "command": "workbench.action.terminal.focusPrevious", "when": "terminalFocus" }, { "key": "ctrl+pagedown", "command": "workbench.action.terminal.focusNext", "when": "terminalFocus" }, { "key": "ctrl+pageup", "command": "workbench.action.previousEditor", "when": "editorTextFocus && vim.active && vim.use<C-pageup> && !inDebugRepl" }, { "key": "ctrl+pagedown", "command": "workbench.action.nextEditor", "when": "editorTextFocus && vim.active && vim.use<C-pagedown> && !inDebugRepl" }, { "key": "tab", "command": "editor.action.indentLines", "when": "editorTextFocus && vim.active && vim.mode != 'Insert' && !editorReadonly" } ] </code></pre> <h3 id="乗り換えて"><a href="#%E4%B9%97%E3%82%8A%E6%8F%9B%E3%81%88%E3%81%A6">乗り換えて</a></h3> <p>非常に快適。とにかく速い。<br /> 詳しくはわからないが、Language Serverというのを使っているせいか、オートコンプリートなどの重い機能もやけに速くストレスが無い。</p> <p>何気にGitの簡単な操作もVSCode上でできてしまうので便利。</p> <p>昔Visual Studioを使っており、いつも重いなぁと思いながら使っていたが、<br /> もしかするとMicrosoftが作っていなかったらもっと遅いIDEになっていたのかもしれないとさえ思った。</p> <p>とにかくVisual Studio Codeおすすめ。</p> <p>ちなみにVSCodeに変えてて重いという人は、多分PCがもう限界だと思われる。スペックはいいのに、と思う場合はHDDが限界。下記にPCを選んだ時に考えた記事もあるので気になる方はご確認を。</p> <p><a href="https://crieit.net/posts/Web-PC">WebエンジニアがPCを買った時に考えたことをまとめてみた</a></p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14283 2016-12-16T09:01:13+09:00 2018-10-24T18:57:24+09:00 https://crieit.net/posts/Atom-pull-request Atomのパッケージにpull requestを送った話 <h3 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h3> <p><a target="_blank" rel="nofollow noopener" href="http://qiita.com/advent-calendar/2016/atom">Atom Advent Calendar 2016 - Qiita</a></p> <p>16日目</p> <h3 id="Atomについて"><a href="#Atom%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6">Atomについて</a></h3> <p>Atomはご存知の通りGithubでも公開されているオープンソースのエディタで、<br /> 連携するパッケージも全て同様。</p> <p>つまり、何か不便を感じた時、通常のアプリケーションのように要望を出してそれが通ったものがリリースされるまで待つ、<br /> 等ということをする必要がない。<br /> 自分で改造すればいい。</p> <p>せっかく改造したなら、pull requestを送ってみるのが良いと思う。<br /> 受け入れて貰えれば今後のアップデートで反映される。</p> <p>2回ほどpull requestを送ったのでその時の話。<br /> どちらも小さなプロジェクトだったのでテストも書かず、すんなりと受け入れてもらえた。</p> <h3 id="remote-ftp"><a href="#remote-ftp">remote-ftp</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/mgrenier/remote-ftp">GitHub - icetee/remote-ftp: FTP/FTPS/SFTP client for Atom.io</a></p> <p>Atom上でSCPでファイル転送できるパッケージ。</p> <p>ローカルでファイルを編集して保存した時、自動的にアップロードしてくれる機能があるので使っていた。</p> <p>しかし、その用途のみの利用だとリモートのツリービューが邪魔なので、デフォルトで非表示にできないか試したところ、できた。<br /> ただ、アップデートがくると修正した箇所も消えてしまうので、<br /> せっかくだからpull requestしてみようと思いデフォルトで非表示にするかどうかの設定をつけて、<br /> 既存のユーザーに影響が無いようにして送ってみたところマージしてもらえた。</p> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/mgrenier/remote-ftp/commit/b691126c0300810eb363cfb30401d71d9812d2eb">Merge pull request #236 from dala00/showViewOnStartup · icetee/remote-ftp@b691126 · GitHub</a></p> <h3 id="symbols-tree-view"><a href="#symbols-tree-view">symbols-tree-view</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/xndcn/symbols-tree-view">GitHub - xndcn/symbols-tree-view: A symbols view like taglist for Atom.io</a></p> <p>ソース中の関数などの一覧が表示され、クリックですぐその位置に飛べる便利なパッケージ。</p> <p>便利なのだが、当初はファイルを開く度にソート順を変更せねばならず、<br /> なんとなく微妙に面倒というか使いづらいという感じだった。<br /> 何でもいいから強制的に名前順にソートできないか? と思い試したところ、できた。</p> <p>せっかくだからこれもpull requestしてみようと思い、<br /> 強制的に名前順にする処理を、現在のコードの種類で設定できるようにして、<br /> 既存のユーザーに影響が無いようにして送ってみたところマージしてもらえた。</p> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/xndcn/symbols-tree-view/commit/e71d465e9e0c519b577f7c50a4727fcc0738b758">Merge pull request #82 from dala00/sortByNameScopes · xndcn/symbols-tree-view@e71d465 · GitHub</a></p> <h3 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h3> <p>このように自分で拡張していけるのでとても面白い。<br /> 一度やってみると今度はもっと別のプロジェクトなどにも貢献してみたくなるので趣味の幅が広がるだろう。</p> <p>ちなみにどちらも不具合というか不足点があったので修正のプルリクエストをしている。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14320 2016-03-23T19:03:41+09:00 2018-10-26T00:55:27+09:00 https://crieit.net/posts/Atom-jQuery AtomでjQueryイベントのアウトライン表示 <p>Atomのパッケージにはsymbols-tree-viewというのがあり<br /> 様々な形式のファイル内のアウトライン表示を行ってくれ、<br /> クリックで簡単に定義に飛ぶことができる。</p> <p>ただ、Javascriptはどうも思った通りに解析されないので<br /> 上手くやる方法はないか調べてみると、<br /> このパッケージはctagsというものを使っているらしい。<br /> (vimとかで使われているものらしい)<br /> その設定ファイルがlib/.ctagsにあるので<br /> それを編集すれば設定が可能。</p> <blockquote> <p>|sh|<br /> --regex-JavaScript=/(\$([^)]+).click)/\1/,event/<br /> --regex-JavaScript=/(\$([^)]+).keydown)/\1/,event/<br /> --regex-JavaScript=/(\$([^)]+).change)/\1/,event/<br /> --regex-JavaScript=/(\$([^)]+).on([^,]+,[ \t]<em>[^,f]+)/\1/,event/<br /> --regex-JavaScript=/(\$([^)]+).on([^,]+,[ \t]</em>)function/\1/,event/<br /> ||</p> </blockquote> <p>こんな感じで設定するとjQueryのイベントとかに飛べるようになる。<br /> 適当なのでちょっと崩れるとダメかも。<br /> だれか完璧なのをpull requestして下さい。</p> <p>追記<br /> this.やprototype.を含む行のメソッド追加をfunctionとして登録する場合。</p> <blockquote> <p>|sh|<br /> --regex-JavaScript=/this.([^ \t]+)[^=]<em>=[ \t]</em>function/\1/,function/<br /> --regex-JavaScript=/prototype.([^ \t]+)[^=]<em>=[ \t]</em>function/\1/,function/<br /> ||</p> </blockquote> だら@Crieit開発者