Режим по-умолчанию в быстром просмотре.

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
Post Reply
patrinvv
Posts: 5
Joined: Fri 11 Dec, 2015 04:51

Режим по-умолчанию в быстром просмотре.

Post by patrinvv »

Предлагаю сделать настраиваемым режим по-умолчания для панели быстрого просмотра (Quick view).
Сейчас там текст. А хотелось-бы иногда HEX.
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

Режим по-умолчанию в быстром просмотре.

Post by cmd.exe »

Поставьте ассоциацию на F3 Hiew. И будет вам счастье.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Режим по-умолчанию в быстром просмотре.

Post by ccaid »

patrinvv wrote: Сейчас там текст. А хотелось-бы иногда HEX.
CtrlQ Tab ShiftF4 H
Фар делают добрые люди
patrinvv
Posts: 5
Joined: Fri 11 Dec, 2015 04:51

Режим по-умолчанию в быстром просмотре.

Post by patrinvv »

Спасибо за быстрые советы.
Когда периодически приходится СРАВНИВАТЬ заголовки нескольких файлов (потому речь и идет о быстром просмотре, на AltF3 у меня уже есть старенький Qview), надоедает для КАЖДОГО файла делать CtrlQ Tab F4. И это работает только при вкл. опции "запоминание позиции" (что не всегда нужно).
Хотелось бы это автоматизировать (данном случае означает вообще исключить).
А т.к. в разработке FARа я не участвую, вот и предложил кому-нибудь сделать это для общего блага.
Даже удивляет, что за 20 лет это не сделали те, кто с исходниками работает.
Значит мало кому такое надо.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Режим по-умолчанию в быстром просмотре.

Post by Smitis »

patrinvv wrote:надоедает для КАЖДОГО файла делать CtrlQ Tab F4. И это работает только при вкл. опции "запоминание позиции" (что не всегда нужно).
Хотелось бы это автоматизировать (данном случае означает вообще исключить).
Для этого даже не нужно ничего просить, всё уже есть для самостоятельного решения
  1. Macro {
  2.  
  3.     description="CtrlQ Hex";
  4.  
  5.     area="Shell Search";
  6.  
  7.     key="CtrlQ";
  8.  
  9.     action=function()
  10.  
  11.         if APanel.FilePanel and not APanel.Folder and PPanel.Type~=2 then
  12.  
  13.             Keys "CtrlQ Tab ShiftF4 Home Down Enter Home Tab"
  14.  
  15.         else
  16.  
  17.             Keys "CtrlQ "
  18.  
  19.         end
  20.  
  21.     end;
  22.  
  23. }
Разум когда-нибудь победит.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Режим по-умолчанию в быстром просмотре.

Post by Shmuel »

Smitis, человек хочет ещё и перемещаться между файлами (Up, Down и т.д.), в вашем макросе это не учтено.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Режим по-умолчанию в быстром просмотре.

Post by Smitis »

Ну, тогда, что-то вроде такого
  1. local qviewmode
  2.  
  3. Macro {
  4.  
  5.     description="CtrlQ Hex Open";
  6.  
  7.     area="Shell Search";
  8.  
  9.     key="CtrlQ";
  10.  
  11.     action=function()
  12.  
  13.         if APanel.FilePanel and not APanel.Folder and PPanel.Type~=2 then
  14.  
  15.             Keys "CtrlQ Tab ShiftF4 Home Down"
  16.  
  17.             qviewmode = Menu.Value
  18.  
  19.             Keys "Enter Home Tab"
  20.  
  21.         else
  22.  
  23.             qviewmode = false
  24.  
  25.             Keys "CtrlQ"
  26.  
  27.         end
  28.  
  29.     end;
  30.  
  31. }
  32.  
  33. Macro {
  34.  
  35.     description="CtrlQ Hex Browse";
  36.  
  37.     area="Shell Search";
  38.  
  39.     key="/(Shift)?(Up|Down|PgUp|PgDn|Home|End)/ Ins";
  40.  
  41.     condition=function()
  42.  
  43.         return APanel.FilePanel and PPanel.Type==2
  44.  
  45.     end;
  46.  
  47.     action=function()
  48.  
  49.         if not APanel.Folder then
  50.  
  51.             Keys "Tab ShiftF4"
  52.  
  53.             qviewmode = Menu.Value
  54.  
  55.             Keys "Esc Tab"
  56.  
  57.         end
  58.  
  59.         Keys "AKey"
  60.  
  61.         if not APanel.Folder then
  62.  
  63.             Keys "Tab ShiftF4"
  64.  
  65.             if qviewmode then
  66.  
  67.                 Menu.Select(qviewmode)
  68.  
  69.             else
  70.  
  71.                 Keys "Home Down"
  72.  
  73.                 qviewmode = Menu.Value
  74.  
  75.             end
  76.  
  77.             Keys "Enter Tab"
  78.  
  79.         end
  80.  
  81.     end;
  82.  
  83. }
Клики мышкой, удаление файлов, переходы по уровням (CtrlPgUp, CtrlPgDn) специально не обрабатываются, режим просмотра может быть нарушен, но это вроде и не требуется.
Разум когда-нибудь победит.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Режим по-умолчанию в быстром просмотре.

Post by zg »

а почему так сложно-то?
  1. local F=far.Flags
  2.  
  3. Event
  4.  
  5. {
  6.  
  7.   group="ViewerEvent";
  8.  
  9.   action=function(id,event,param)
  10.  
  11.     if F.VE_READ==event and F.WTYPE_PANELS==far.AdvControl(F.ACTL_GETWINDOWTYPE).Type and F.PTYPE_QVIEWPANEL==panel.GetPanelInfo(nil,0).PanelType then
  12.  
  13.       viewer.SetMode(id,{Type=F.VSMT_VIEWMODE;iParam=F.VMT_HEX;Flags=F.VSMFL_REDRAW})
  14.  
  15.     end
  16.  
  17.   end
  18.  
  19. }
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Режим по-умолчанию в быстром просмотре.

Post by Smitis »

Действительно, так проще. Однако, позволю себе усложнить - открываем всегда в hex, а при перемещении сохраняем режим просмотра предыдущего файла.
  1. local F=far.Flags
  2.  
  3. local viewmode
  4.  
  5. Event
  6.  
  7. {
  8.  
  9.     group="ViewerEvent";
  10.  
  11.     action=function(id,event,param)
  12.  
  13.         if far.AdvControl(F.ACTL_GETWINDOWTYPE).Type==F.WTYPE_PANELS and panel.GetPanelInfo(nil,0).PanelType==F.PTYPE_QVIEWPANEL then
  14.  
  15.             if event==F.VE_READ then
  16.  
  17.                 viewmode = viewmode or F.VMT_HEX
  18.  
  19.                 viewer.SetMode(id,{Type=F.VSMT_VIEWMODE;iParam=viewmode;Flags=F.VSMFL_REDRAW})
  20.  
  21.             elseif event==F.VE_CLOSE then
  22.  
  23.                 viewmode = viewer.GetInfo(id).CurMode.ViewMode
  24.  
  25.             end
  26.  
  27.         end
  28.  
  29.     end;
  30.  
  31. }
  32.  
  33. Macro {
  34.  
  35.     area="Shell Search";
  36.  
  37.     key="CtrlQ";
  38.  
  39.     action=function()
  40.  
  41.         viewmode = false
  42.  
  43.         Keys "CtrlQ"
  44.  
  45.     end;
  46.  
  47. }
Разум когда-нибудь победит.
patrinvv
Posts: 5
Joined: Fri 11 Dec, 2015 04:51

Режим по-умолчанию в быстром просмотре.

Post by patrinvv »

Спасибо, поразбираюсь!
Теперь вспомнил, что когда-то давно в мануале к FARу попадалось загадочное слово lua, и там-же говорилось о макросах.
patrinvv
Posts: 5
Joined: Fri 11 Dec, 2015 04:51

Режим по-умолчанию в быстром просмотре.

Post by patrinvv »

Простите кто помогал, так и не добрался до макросов.
Понял, что дело не в быстром просмотре, в самом вьюере.
Удивляет при наличии десятка настроек отсутствие выбора режима по умолчанию.
У меня на виртуалке есть VS2010, оказалось FAR под ней можно собрать (самая старая из возможных версий).
Даже удивился, когда FAR скомпилироваля и собрался без ошибок.
Добавить опцию для меня не по силам, а привязать начальный режим к редко нужному скроллингу оказалось легко.
В файле viewer.cpp заменил
if (!m_DisplayMode.touched())
m_DisplayMode = m_DumpTextMode? VMT_DUMP : VMT_TEXT;
на
if (!m_DisplayMode.touched())
{if (!ViOpt.ShowScrollbar) m_DisplayMode = m_DumpTextMode? VMT_DUMP : VMT_TEXT;
else m_DisplayMode = VMT_HEX;}
и получилось то что надо (пока не вис и не вылетал).
А что такое .touched() - для меня загадка за семью печатями... :(
patrinvv
Posts: 5
Joined: Fri 11 Dec, 2015 04:51

Режим по-умолчанию в быстром просмотре.

Post by patrinvv »

Поправка:
if (!m_DisplayMode.touched()) пришлось все-же закомментарить, чтобы работало.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Режим по-умолчанию в быстром просмотре.

Post by zg »

patrinvv wrote:Удивляет при наличии десятка настроек отсутствие выбора режима по умолчанию.
видимо те настройки более востребованы, при том что режим по умолчанию легко реализуется макросом.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Режим по-умолчанию в быстром просмотре.

Post by 2useven10 »

5326 - дамп отключаемый
Post Reply

Return to “Предложения и идеи”