@@ -1589,6 +1589,7 @@ function! s:Preview(bang, lnum, uri) abort
15891589 let binding = ' 0.0.0.0:3000'
15901590 endif
15911591 let binding = s: sub (binding, ' ^0\.0\.0\.0>|^127\.0\.0\.1>' , ' localhost' )
1592+ let binding = s: sub (binding, ' ^\[::\]' , ' [::1]' )
15921593 let uri = empty (a: uri ) ? get (rails#buffer ().preview_urls (a: lnum ),0 ,' ' ) : a: uri
15931594 if uri = ~ ' ://'
15941595 "
@@ -1802,22 +1803,29 @@ function! rails#get_binding_for(pid) abort
18021803 endif
18031804 if has (' win32' )
18041805 let output = system (' netstat -anop tcp' )
1805- return matchstr (output, ' \n\s*TCP\s\+\zs\S\+\ze\s\+\S\+\s\+LISTENING\s\+' .a: pid .' \>' )
1806+ let binding = matchstr (output, ' \n\s*TCP\s\+\zs\S\+\ze\s\+\S\+\s\+LISTENING\s\+' .a: pid .' \>' )
1807+ return s: sub (binding, ' ^([^[]*:.*):' , ' [\1]:' )
18061808 endif
18071809 if executable (' lsof' )
18081810 let lsof = ' lsof'
18091811 elseif executable (' /usr/sbin/lsof' )
18101812 let lsof = ' /usr/sbin/lsof'
18111813 endif
18121814 if exists (' lsof' )
1813- let output = system (lsof.' -an -itcp -sTCP:LISTEN -p' .a: pid )
1815+ let output = system (lsof.' -an -i4tcp -sTCP:LISTEN -p' .a: pid )
18141816 let binding = matchstr (output, ' \S\+:\d\+\ze\s\+(LISTEN)\n' )
1815- return s: sub (binding, ' ^\*' , ' 0.0.0.0' )
1817+ let binding = s: sub (binding, ' ^\*' , ' 0.0.0.0' )
1818+ if empty (binding)
1819+ let output = system (lsof.' -an -i6tcp -sTCP:LISTEN -p' .a: pid )
1820+ let binding = matchstr (output, ' \S\+:\d\+\ze\s\+(LISTEN)\n' )
1821+ let binding = s: sub (binding, ' ^\*' , ' [::]' )
1822+ endif
1823+ return binding
18161824 endif
18171825 if executable (' netstat' )
18181826 let output = system (' netstat -antp' )
1819- return matchstr (output, ' \S\+:\d\+\ze\s\+\S\+\s\+LISTEN\s\+' .a: pid .' /' )
1820- return binding
1827+ let binding = matchstr (output, ' \S\+:\d\+\ze\s\+\S\+\s\+LISTEN\s\+' .a: pid .' /' )
1828+ return s: sub ( binding, ' ^([^[]*:.*): ' , ' [\1]: ' )
18211829 endif
18221830 return ' '
18231831endfunction
0 commit comments