Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

VimでPHPによく出てくるテキスト整形

$
0
0

PHPで開発している際によく見かけるテキストを整形する処理のチップスとなります。

全般

CSV/TSV、リファクタリングなどで広く使えます。
vim-easy-alignのデフォルトとREADME.mdのサンプルの設定でも十分使えますが、
PHP様には一部不向きな点もあるため、適当に改良してあります。

.vimrc
" vim-easy-align {{{
NeoBundleLazy 'junegunn/vim-easy-align', {
\    'autoload': {
\        'commands' : 'EasyAlign',},}
vnoremap<silent><Leader>a :EasyAlign<CR>letg:easy_align_delimiters = {
\    '=': {
\        'pattern': '===\|!==\|<=>\|\(&&\|||\|<<\|>>\)=\|=\~[#?]\?\|=>\|[:+/*!%^=><&|.-]\?=[#?]\?',
\        'left_margin': 1,
\        'right_margin': 1,
\        'stick_to_left': 0 },
\    '>': {
\        'pattern': '>>\|=>\|>', },
\    '/': {
\        'pattern':       '//\+\|/\*\|\*/',
\        'ignore_groups': ['String'], },
\    '#': {
\        'pattern':         '#\+',
\        'ignore_groups':   ['String'],
\        'delimiter_align': 'l', },
\    '$': {
\        'pattern':         '\((.*\)\@!$\(.*)\)\@!',
\        'ignore_groups':   ['String'],
\        'right_margin':  0,
\        'delimiter_align': 'l', },
\    ']': {
\        'pattern':       '[[\]]',
\        'left_margin':   0,
\        'right_margin':  0,
\        'stick_to_left': 0, },
\    ')': {
\        'pattern':       '[()]',
\        'left_margin':   0,
\        'right_margin':  0,
\        'stick_to_left': 0, },
\    'd': {
\        'pattern':      ' \(\S\+\s*[;=]\)\@=',
\        'left_margin':  0,
\        'right_margin': 0, }, }
"}}}

JSON整形

Python の json.toolが便利なので活用します。ここではPHPを使用しません。

.vimrc
nnoremap<Leader>json :execute '%!python -m json.tool'<CR>

XML整形

OSに備わっているコマンドを活用します。ここではPHPを使用しません。

.vimrc
nnoremap<Leader>xml  :execute '%!xmllint --noblanks --nowrap --encode UTF-8 --format %'<CR>

SQL整形

vim-easy-alignとAlignどちらが良いかとよく話題に出ますが、個人的にはvim-easy-alignの方が使いやすいです。
ただ、SQLUtilitiesがAlign依存なため、使用しています。

.vimrc
" Align" SQLUtilities {{{
NeoBundleLazy 'vim-scripts/SQLUtilities', {
\    'depends': 'vim-scripts/Align',
\    'autoload': {
\        'commands' : 'SQLUFormatter',},}
letg:sqlutil_align_comma =1nnoremap<Leader>sql :SQLUFormatter<CR>"}}}

複数行のテキストをクリップボードからVimに貼付

整形したテキストを別タブのVim等に貼り付ける、ブラウザからコピペする際に設定してあるとわりと便利です。
動作確認はMAC(iTerm2)で動作している事は確認していますが、Windows(Poderosa)では動作していません。

.vimrc
nnoremap<silent><expr><Leader>v':set<Space>paste<CR><Insert><C-r>+<ESC>:set<Space>nopaste<CR>'inoremap<silent><expr><C-v>'<ESC>:set<Space>paste<CR><Insert><C-r>+<ESC>:set<Space>nopaste<CR><Insert>'

Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>