ためすう

gem を使ってインストールされた場所

2018-07-01

目的

gem を使ってインストールしたファイルがどこにあるのかを調べます。

方法

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.5
  - RUBY VERSION: 2.2.2 (2015-04-13 patchlevel 95) [x86_64-darwin14]
  - INSTALLATION DIRECTORY: /Users/hogehoge/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0
  - RUBY EXECUTABLE: /Users/hogehoge/.rbenv/versions/2.2.2/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/hogehoge/.rbenv/versions/2.2.2/bin
  - SPEC CACHE DIRECTORY: /Users/hogehoge/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/hogehoge/.rbenv/versions/2.2.2/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-14
  - GEM PATHS:
     - /Users/hogehoge/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0
     - /Users/hogehoge/.gem/ruby/2.2.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/hogehoge/.rbenv/versions/2.2.2/bin
     - /usr/local/Cellar/rbenv/0.4.0/libexec
     - /anaconda3/bin
     - /Users/hogehoge/.rbenv/shims
     - /Users/hogehoge/.rbenv/bin
     - /Users/hogehoge/cocos2d-x-3.2/tools/cocos2d-console/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Users/hogehoge/play-2.2.1

※ ユーザー名を hogehoge としました。

下記の箇所が、インストールされている場所です。

INSTALLATION DIRECTORY: /Users/hogehoge/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0

参考

vim で EditorConfig を使う

2018-07-01

使ってみる

NeoBundle でインストールします

~/.vimrc で追記します

NeoBundle 'editorconfig/editorconfig-vim'

~/.editorconfig

[*]
trim_trailing_whitespace = true

[*.php]
tab_width = 4

参考

jekyll でページネーション

2018-06-30

目的

jekyll でページネーションの実現方法について調べました。

方法

jekyll のバージョン確認

$ bundle list | grep jekyll
  * jekyll (3.5.2)
  * jekyll-feed (0.9.2)
  * jekyll-paginate (1.1.0)
  * jekyll-sass-converter (1.5.0)
  * jekyll-watch (1.5.0)

上記にあるように jekyll のバージョンは 3.5.2 です。

Gem ファイルに追記

$ vim Gemfile

gem "jekyll-paginate"

_config.yml に追記

$ vim _config.yml

paginate: 5
paginate_path: "page/:num"

ここまでで、反映されるか試してみます

$ bundle exec jekyll s

  Dependency Error: Yikes! It looks like you don't have jekyll-paginate or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- jekyll-paginate' If you run into trouble, you can find helpful resources at https://jekyllrb.com/help/!

Gem ファイルに記載している jekyll-paginate が見つからないと言われているようです。

jekyll-paginate をインストールします。

jekyll-paginate のインストール

$ gem install jekyll-paginate

ローカルサーバーを立ち上げ直してみます。

$ bundle exec jekyll s

...
      Generating...
        Pagination: Pagination is enabled, but I couldn't find an index.html page to use as the pagination template. Skipping pagination.

エラーは出なくなりましたが、index.html を作成する必要があるようです。

index.htmlの用意

コードは、公式にあったものです。

---
layout: default
title: My Blog
---

<!-- ページ分割されたpostsに対してループ -->
{% for post in paginator.posts >}}
  <h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
  <p class="author">
    <span class="date">{{ post.date }}</span>
  </p>
  <div class="content">
    {{ post.content }}
  </div>
{% endfor >}}

<!-- ページネーションリンク -->
<div class="pagination">
  {% if paginator.previous_page >}}
    <a href="/page{{ paginator.previous_page }}" class="previous">Previous</a>
  {% else >}}
    <span class="previous">Previous</span>
  {% endif >}}
  <span class="page_number ">Page: {{ paginator.page }} of {{ paginator.total_pages }}</span>
  {% if paginator.next_page >}}
    <a href="/page{{ paginator.next_page }}" class="next">Next</a>
  {% else >}}
    <span class="next ">Next</span>
  {% endif >}}
</div>

これでページングが実装されました。

しかし、このままだと 2ページ目に遷移しようとするとページが存在しないと言われてしまいます。

リンク先を _config.yml で設定したものに合わせます。

ページングの修正

index.html 内のページングのリンク先を下記のように置き換えます。

<a href="/page/{{ paginator.previous_page }}" class="previous">Previous</a>

さらに 2 ページ目から 1ページ目に戻るとき、ページが存在しないと言われてしまいました。

ここでは、条件分岐を書いて回避することにします。

最終的に、index.html のページング部分は下記のようになります。

<!-- ページ分割されたpostsに対してループ -->
{% for post in paginator.posts >}}
  <h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
  <p class="author">
    <span class="date">{{ post.date }}</span>
  </p>
  <div class="content">
    {{ post.content }}
  </div>
{% endfor >}}

<!-- ページネーションリンク -->
<div class="pagination">
  {% if paginator.previous_page >}}
    {% if paginator.previous_page == 1 >}}
        <a href="/" class="previous">Previous</a>
    {% else >}}
        <a href="/page/{{ paginator.previous_page }}" class="previous">Previous</a>
    {% endif >}}
  {% else >}}
    <span class="previous">Previous</span>
  {% endif >}}
  <span class="page_number ">Page: {{ paginator.page }} of {{ paginator.total_pages }}</span>
  {% if paginator.next_page >}}
    <a href="/page/{{ paginator.next_page }}" class="next">Next</a>
  {% else >}}
    <span class="next ">Next</span>
  {% endif >}}
</div>

参考

scp でファイルのアップロード、ダウンロード

2018-06-24

目的

手元の PC とリモートサーバーとの間でファイルをやりとりするために使用しました。

使う度に調べ直しているので、まとめてみます。

方法

(以下 man コマンドより引用)

scp [-12346BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2

アップロード @ローカルホスト

index.htmlをアップロードする

$ scp -P 22 -i identity_file index.html admin@domain.com:/home/admin/

ダウンロード @ローカルホスト

$ scp -P 22 -i identity_file admin@domain.com:/home/admin/index.html ./

最後に

下記のようなイメージです

$ scp [移動したいファイルパス] [移動先のファイルパス]

vim でエクスプローラ時のコマンド

2018-06-24

vim のエクスプローラで実行できるコマンド

vim で エクスプローラを開いた時 ( :Ex ) に実行できるコマンドを調べました。

(まだ記載していないコマンドがたくさんあります)

|コマンド|説明| |–|————–| |%|新規ファイル作成| |d|新規ディレクトリ作成| |D|ファイル/ディレクトリの削除| |R|ファイル/ディレクトリの名前変更| |p|プレビュー(別ペインで開く)|

参考URL

MacVim で背景を透明にする

2018-06-23

目的

ターミナルの vim では設定が反映されているのに、MacVim で下記の設定が反映されていませんでした。

  • カラースキーマが効いてない
  • MacVim の背景を透明にする設定も効いてない

MacVim でも設定が反映されるようにします。

方法

  1. MacVim.app/Contents/Resources/vim/vimrc
  2. ホームフォルダ/.vimrc または _vimrc
  3. MacVim.app/Contents/Resources/vim/gvimrc
  4. ホームフォルダ/.gvimrc または _gvimrc
$ vim ~/.gvimrc

source ~/.vimrc
set transparency=20

これで MacVim の背景が透明になりました。

参考URL

jekyll でテンプレートの変更をする

2018-06-17

目的

jekyll という静的サイトジェネレータでテーマに minima を利用しています。

ページネーションを実現しようとした時、テンプレートファイルを修正する必要が出てきました。

現在、_layouts フォルダがないため、minima のテンプレートファイルを gem に置いてあるところから

ではなく、自分で用意したファイルから読み出せるようにします。

テンプレートファイルを設置する

$ cp -r ~/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/minima-2.1.1/_layouts/* _layouts/

ちなみに

minima の開発リポジトリを探してみます。

$ gem environment

一部抜粋

  - REMOTE SOURCES:
     - https://rubygems.org/

rubygems 内で検索して出てきました。

unix でファイル検索する

2018-06-16

目的

unix でファイル検索する方法を調べました。

方法

$ find ./ -name test

testのところには検索パターンを入れます。

たとえば zip ファイル を探したい場合は、下記のようにして検索します。

$ find ./ -name *.zip

最後にデータが修正されたのが 5 分以上前のものは、下記のように検索します。

$ find ./ -mmin +5

ファイルタイプで検索 (ディレクトリを検索)

$ find ./ -type d

ssh 接続をラクにする

2018-06-16

目的

ssh接続するときのコマンドを短くします。

方法

仮定

  • 接続するサーバー: example.com
  • 接続するユーザー: username
  • 接続するサーバーの秘密鍵: ~/.ssh/myssh.key

設定前の接続方法

$ ssh -i ~/.ssh/myssh.key username@example.com

設定後の接続方法

設定を記述します。

$ vim ~/.ssh/config
Host myhost
  HostName example.com
  User username
  Port 22
  IdentityFile ~/.ssh/myssh.key

これにより、下記で接続できます。

$ ssh myhost

(以下 man コマンドより引用)

     -F configfile
             Specifies an alternative per-user configuration file.  If a configuration file is given on the command line, the system-wide configuration file (/etc/ssh/ssh_config) will be ignored.  The default for the per-user configuration file
             is ~/.ssh/config.

参考URL

zip を使ってみる

2018-06-10

目的

使用する PC が Mac になってからコマンドで zip ファイルを作るようになったので

やり方のメモを残します。

方法

zip ファイルを作成します。

$ zip test.zip test.txt test1.txt

zipファイルをパスワード付きで生成します。

$ zip -e test.zip test1.txt test2.txt
Enter password:
Verify password:
updating: test1.txt (stored 0%)
updating: test2.txt (stored 0%)

man zipで見てみると、-e は –encrypt と同義でした。

( encrypt は暗号化という意味)