Vim с Powershell

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

54
задан Community 23 May 2017 в 02:34
поделиться

7 ответов

Это немного похоже на взлом, но следующее работает в Vim 7.2. Обратите внимание, я запускаю Powershell в сеансе CMD.

if has("win32")
    set shell=cmd.exe
    set shellcmdflag=/c\ powershell.exe\ -NoLogo\ -NoProfile\ -NonInteractive\ -ExecutionPolicy\ RemoteSigned
    set shellpipe=|
    set shellredir=>
endif

function! Test()
  echo system("dir -name")
endfunction

Протестировано с помощью следующего ...

  • :! dir -name
  • : call Test ()
25
ответ дан 7 November 2019 в 08:10
поделиться

Попытайтесь заменить

"dir \*vim\*"

с

 " -command { dir \*vim\* }"

РЕДАКТИРОВАНИЕ: Попытка с помощью cmd.exe в качестве оболочки и помещенного "powershell.exe" прежде "-управляет"

3
ответ дан Mark Schill 7 November 2019 в 08:10
поделиться

Интересный вопрос - вот что-то еще для добавления к беспорядку. Не внося изменений в мой .vimrc файл, если я тогда выполняю следующие команды в gvim:

:set shell=powershell.exe
:set shellcmdflag=-noprofile
:echo system("dir -name")

Это ведет себя как ожидалось!

, Если я вношу те же изменения в свой .vimrc файл, хотя (оболочка и shellcmdflag опции), работая: система эха ("dir - имя") возвращает символы ерунды!

2
ответ дан David Mohundro 7 November 2019 в 08:10
поделиться

Я не использую VIM, но значение по умолчанию Powershell произвело, Unicode. Блокнот может считать unicode, Вы могли использовать его, чтобы видеть, получаете ли Вы вывод, Вы ожидаете.

-2
ответ дан 7 November 2019 в 08:10
поделиться

Предлагаю хакерское решение. На самом деле это не решает проблему, но каким-то образом выполняет свою работу.

Этот плагин Vim автоматизирует создание временного файла сценария, вызов PowerShell через cmd.exe и вставку результата. Это не так хорошо, как правильная обработка Powershell с помощью vim, но работает.

0
ответ дан 7 November 2019 в 08:10
поделиться

Я подозреваю, что проблема в том, что Powershell использует нативную кодировку String для .NET, которая UTF-16 плюс отметка байт-ордера.

Когда он связывает объекты между командами, это не проблема. Хотя для внешних программ это полный PITA.

Вы можете передать вывод через внешний файл, который поддерживает изменение кодировки, но все равно форматирует вывод для терминала, в котором он находится по умолчанию (arrgh!), поэтому такие вещи, как "Get-Process" будут усечены эллипсами, и т.д. Вы можете указать ширину виртуального терминала, который использует Out-File.

Не знаю, насколько эта информация полезна, но она немного больше освещает проблему.

.
5
ответ дан 7 November 2019 в 08:10
поделиться

Код начального примера работает нормально, когда я помещаю его в vimrc.

Так что теперь я пытаюсь понять, что в моем vimrc заставляет его работать. Possibly:

set encoding=utf8

Edit: Да, похоже, это работает. Вы, вероятно, хотите, чтобы VIM по умолчанию использовал юникод в любом случае, в наши дни...

2
ответ дан 7 November 2019 в 08:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: